Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/11/2004, 14h48   #1
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
Par défaut Savoir si un champs est pk ou fk

'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
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2004, 15h11   #2
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149
re,

si tu regardes bien la doc, tu verras :
Citation:
Envoyé par [url=http://www.postgresql.org/docs/7.4/static/catalog-pg-constraint.html
pg_constraint[/url]]Name
Code :
1
2
Name          Type	       REFERENCES	   Description
conrelid	    oid	       pg_class.oid	The TABLE this constraint IS ON; 0 IF NOT a TABLE constraint
et
Citation:
Envoyé par [url=http://www.postgresql.org/docs/7.4/static/catalog-pg-class.html
pg_class[/url]]
Code :
1
2
Name	   Type	   REFERENCES	   Description
relname   name	 	               Name of the TABLE, INDEX, VIEW, etc.
, et aussi
Citation:
Envoyé par [url=http://www.postgresql.org/docs/7.4/static/catalog-pg-attribute.html
pg_attribute[/url]]
Code :
1
2
Name	    Type	   REFERENCES	   Description
attrelid	oid	    pg_class.oid	  The TABLE this COLUMN belongs TO
==> 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.

il y a peut-etre plus simple mais je ne vois que ça...
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2004, 15h24   #3
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
Par défaut Pb

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
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2004, 15h34   #4
Membre Expert
 
Avatar de David Guillot
 
Homme David Guillot
Chef de projet en SSII
Inscription : mars 2004
Messages : 879
Détails du profil
Informations personnelles :
Nom : Homme David Guillot
Âge : 28
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mars 2004
Messages : 879
Points : 1 149
Points : 1 149
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...)
__________________
Avant de poser une question ici :

Après résolution de votre question : un clic sur , un et un vote pour les personnes qui vous ont aidé
David Guillot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2004, 15h38   #5
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
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
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h53.


 
 
 
 
Partenaires

Hébergement Web