'lut,
toujours dans le même contexte, comment je peut savoir si un champs est primary key ou foreign key. j'ai trouver la table pg_constraint mais j'ai aucun lien entre mes table et les contraintes.
merci de votre aide
Mic
'lut,
toujours dans le même contexte, comment je peut savoir si un champs est primary key ou foreign key. j'ai trouver la table pg_constraint mais j'ai aucun lien entre mes table et les contraintes.
merci de votre aide
Mic
re,
si tu regardes bien la doc, tu verras :
etEnvoyé par [url=http://www.postgresql.org/docs/7.4/static/catalog-pg-constraint.html
, et aussiEnvoyé par [url=http://www.postgresql.org/docs/7.4/static/catalog-pg-class.html
==> je pense donc qu'une simple jointure entre pg_attribute et pg_class sur le nom de la table, puis une jointure entre pg_class et pg_constraint sur l'oid de la table devraient te donner les contraintes associées à un attribut.Envoyé par [url=http://www.postgresql.org/docs/7.4/static/catalog-pg-attribute.html
il y a peut-etre plus simple mais je ne vois que ça...
Ya un pb, voila la requete que je fé
SELECT c.relname,a.attname,p.contype from pg_class as c, pg_attribute as a, pg_constraint as p
WHERE c.relfilenode=a.attrelid and c.relname='med_medias' and p.conrelid=c.relfilenode
cela me renvoie mes champs en double
la proposition de requete que je t'ai fait partait d'un nom d'attribut. si tu veux partir d'un nom de relation, la jointure avec pg_attribute n'est pas utile, et je crois meme que c'est elle qui apporte la redondance...
(si ça ne marche toujours pas, tu peux toujours utiliser DISTINCT pour virer les doublons... mais c'est un peu brutal...)
ouai mais ce que je veut, c pour un nom de table donnée, cela me retourne la liste des champs qui sont soit pk ou fk
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager