Vikdal Skrevet 11. mars 2008 Rapporter Del Skrevet 11. mars 2008 Heisann databasefolk Jeg sitter med en spørring her som jeg ikke får til. Jeg har behov for en spørring i postgres (8.2.4 om noen lurer) som gir meg hvilke kolonner som er primærnøkkel i en tabell på følgende formen: TABLE_NAME COLUMN_NAME ------------------------- -------------------- ALTERNATIVEFILMTITLE ALTTITLE ALTERNATIVEFILMTITLE FILMID FILM FILMID FILMCOUNTRY COUNTRY FILMCOUNTRY FILMID Jeg er ikke helt fortrolig med hvordan postgres bruker sine system tabeller og håper derfor at det er noen der ute som kan hjelpe meg litt. Lenke til kommentar
blackbrrd Skrevet 12. mars 2008 Rapporter Del Skrevet 12. mars 2008 (endret) select r.relname as "Table", c.conname as "Constraint Name", contype as "Constraint Type", conkey as "Key Columns", confkey as "Foreign Columns", consrc as "Source", a.attname as "PrimaryKey" from pg_class r inner join pg_constraint c ON r.oid = c.conrelid inner join pg_attribute a ON r.relfilenode = attrelid where a.atttypid = 23 ser ut til å fungere Kilde (delvis): http://www.thescripts.com/forum/thread174998.html Endret 12. mars 2008 av blackbrrd Lenke til kommentar
Vikdal Skrevet 20. mars 2008 Forfatter Rapporter Del Skrevet 20. mars 2008 Tusen takk for hjelpen Er en stund siden jeg var innom og sjekket svaret og fikk testa det. Akkurat den nevnte spørringen fungerte ikke for meg. Grunnen til det tror jeg er at i databasen jeg jobber på er det ikke definert noen primærnøkkler (i ordets rette forstand). Postgres har jo også varianten UNIQUE i tillegg til PK, og det er UNIQUE som er brukt i denne basen. Spørringen jeg endte opp med er: select r.relname as table_name, a.attname as column_name from pg_class r inner join pg_constraint c ON r.oid = c.conrelid inner join pg_attribute a ON r.relfilenode = a.attrelid where a.attnum > 0 and c.contype = 'u' /* Sjekker på typen UNIQUE */ and a.attnum = ANY(conkey) order by r.relname; Men takk for hjelpen. Har lært veldig mye om systemtabellene til postgres i det siste. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå