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 10/06/2004, 16h13   #1
Invité de passage
 
Inscription : juin 2004
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 3
Points : 1
Points : 1
Envoyer un message via ICQ à j_bonc Envoyer un message via AIM à j_bonc Envoyer un message via MSN à j_bonc
Par défaut [resolu] pbm avec les foreigns keys.....

Bonjour a vous
je suis un ultra debutant,la reponse sera peut etre evidente pour vous, mais je vous garantie que j ai cherché...

Je voudrai empecher la creation d'un enregistrement dans droit_groupe si le nom_groupe n existe pas dans liste_groupe. voici mes tables:

pour liste_groupe
Code :
1
2
3
4
5
6
 
num_auto   | integer               | NOT NULL DEFAULT NEXTVAL('public.liste_groupe_num_auto_seq'::text)
 nom_groupe | character varying(10) |
 login      | character varying(8)  |
INDEX: liste_groupe_pkey PRIMARY KEY btree (num_auto)
FOREIGN KEY constraints: $2 FOREIGN KEY (login) REFERENCES utilisateur(login) ON UPDATE NO ACTION ON DELETE NO ACTION
et pour droit_groupe

Code :
1
2
3
4
5
6
7
8
9
 
num_auto    | integer               | NOT NULL DEFAULT NEXTVAL('public.droit_groupe_num_auto_seq'::text)
 nom_groupe  | character varying(10) |
 nom_doc     | character varying(20) |
 lecture     | BOOLEAN               |
 ecriture    | BOOLEAN               |
 suppression | BOOLEAN               |
INDEX: droit_groupe_pkey PRIMARY KEY btree (num_auto),
       droit_unique UNIQUE btree (nom_groupe, nom_doc)
Voici ma commande:
Code :
ALTER TABLE droit_groupe ADD constraint nom_groupe FOREIGN KEY (nom_groupe) REFERENCES liste_groupe (nom_groupe);
et voici le message d erreur:
Citation:
NOTICE: ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
ERROR: UNIQUE constraint matching given keys for referenced table "liste_groupe" not found
Je n arrive pas a trouver le sens de cette erreur...
si vous pouviez m aider, merci
j_bonc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2004, 17h23   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

je ne suis pas sur que ca va régler ton problème, mais essaye de ne pas donner à ta contrainte de clé étrangère le même nom qu'un de tes champs. Essaye plutôt :
Code :
ALTER TABLE droit_groupe ADD constraint fk_nom_groupe FOREIGN KEY (nom_groupe) REFERENCES liste_groupe (nom_groupe);
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2004, 17h28   #3
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
...Et tant que j'y suis, t'es-tu assuré avant de créer ta contrainte que chacune de tes clé étrangères dans droit_groupe avait une correspondance dans liste_groupe ?
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2004, 19h27   #4
Invité de passage
 
Inscription : juin 2004
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 3
Points : 1
Points : 1
Envoyer un message via ICQ à j_bonc Envoyer un message via AIM à j_bonc Envoyer un message via MSN à j_bonc
Par défaut je vais essayer ca...

... demain (je suis plus au boulot ) et je te tiens au courant, mais nil me semble bien avoir fait attentio a ce qu il y ait une correspondance entre les cles.
Merci
j_bonc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2004, 10h23   #5
Invité de passage
 
Inscription : juin 2004
Messages : 3
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 3
Points : 1
Points : 1
Envoyer un message via ICQ à j_bonc Envoyer un message via AIM à j_bonc Envoyer un message via MSN à j_bonc
J ai resolu le probleme en creant une table supplemantaire groupe où je donne le nom des groupes seulement, et c est dans cette table que je vérifie si un groupe existe avant de lui donner ses droits...
Merci
j_bonc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h12.


 
 
 
 
Partenaires

Hébergement Web