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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
alter table droit_groupe add constraint nom_groupe foreign key (nom_groupe) references liste_groupe (nom_groupe);
et voici le message d erreur:
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