Je n'ai pas vraiment saisi ce que tu voulais faire :
. tu veux récupérer le nom du champ correspondant à la clé primaire pour chaque table ?
. tu veux récupérer toutes les valeurs des champs correspondant au clés primaires pour chacune des tables (possible à partir du précédent)?
À priori, un index est créé pour chaque clé primaire donc pour chaque table (tablename), tu dois pouvoir trouver dans le champ indexdef le nom de ta clé primaire (table pg_indexes).
Il y a certainement mieux. C'est ce que j'ai testé en trente secondes :
# SELECT * from pg_indexes where tablename='foo';
schemaname | tablename | indexname | indexdef
------------+-----------+-----------+----------------------------------------------------------
public | foo | foo_pkey | CREATE UNIQUE INDEX foo_pkey ON foo USING btree (id_foo)
ou id_foo est la clé.
# Précision, petite précision
Posté par jerome . En réponse au message Soucis avec postgreSQL. Évalué à 3.
. tu veux récupérer le nom du champ correspondant à la clé primaire pour chaque table ?
. tu veux récupérer toutes les valeurs des champs correspondant au clés primaires pour chacune des tables (possible à partir du précédent)?
À priori, un index est créé pour chaque clé primaire donc pour chaque table (tablename), tu dois pouvoir trouver dans le champ indexdef le nom de ta clé primaire (table pg_indexes).
Il y a certainement mieux. C'est ce que j'ai testé en trente secondes :
# SELECT * from pg_indexes where tablename='foo';
schemaname | tablename | indexname | indexdef
------------+-----------+-----------+----------------------------------------------------------
public | foo | foo_pkey | CREATE UNIQUE INDEX foo_pkey ON foo USING btree (id_foo)
ou id_foo est la clé.