Il giorno mar, 07-12-2004 alle 08:44 +0100, tiziano @ work ha scritto: > Mi sono spiegato probabilmente male. > Non è che mi sono perso una chiave primaria, e non so come ricercarla > (qualunque client sql va bene per questo)... a me serve la sintassi sql > per recuperare da postgres informazioni sulla chiave primaria. > "describe" di mysql è un comando sql. Lo puoi fare con una select di questo genere: SELECT pg_attribute.attname FROM pg_constraint JOIN pg_class ON pg_class.oid = pg_constraint.conrelid JOIN pg_namespace ON pg_namespace.oid = pg_class.relnamespace JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid AND pg_attribute.attnum = ANY (pg_constraint.conkey) WHERE pg_constraint.contype = 'p' AND pg_class.relname = '<tabella>' AND pg_namespace.nspname = 'public' che restituisce una riga per ogni colonna che fa parte dell'eventuale chiave primaria sulla tabella "<tabella>" nel namespace "public". L'unica fregatura è che non riesco ancora a recuperare le colonne nell'ordine specificato nel DDL (ma fa poca differenza per una PRIMARY KEY), visto che l'elenco delle colonne è memorizzato come un tipo array di interi (da qui l'uso di ANY()) che al momento non saprei spacchettare per farci sopra un'ORDER BY per posizione nell'array. Trovi di tutto e di più nella documentazione di PostgreSQL, alla voce "system catalogs". Si tratta solo di fare le query del caso. -- | \ \ | ___|_ |_ | ianezz a casa sua... :-) | _ \ | \ | _| / / Verba volant, scripta _|_/ _\_| _|____|___|___| manent, data corrupted -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx