|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : décembre 2004 Messages : 2 ![]() |
petit probleme lors de la création d'un table étant l'association de deux autre table :
je créé : CREATE TABLE auteur( num_auteur VARCHAR(5) PRIMARY KEY, nom_auteur VARCHAR(20), prenom_auteur VARCHAR(20), date_naissance DATE ); puis : CREATE TABLE document ( ref_doc VARCHAR(5) PRIMARY KEY, titre VARCHAR(50), theme VARCHAR(40), nbr_exemplaire int, duree_emprunt int, num_editeur varchar(5), foreign key(num_editeur) REFERENCES editeur, CHECK ( (nbr_exemplaire >=0) AND (duree_emprunt >=1)) ); Efin, je créer la table d'aasociation suivante : CREATE TABLE ecrit( ref_doc VARCHAR(5), num_auteur VARCHAR(5), FOREIGN KEY(ref_doc) REFERENCES document(ref_doc), FOREIGN KEY(num_auteur) REFERENCES auteur(num_auteur), CONSTRAINT ecrit_cp PRIMARY KEY(ref_doc,num_auteur) ); J'insert des VALUES dans document et dans auteur : INSERT INTO auteur VALUES('a0001','Hunt','Craig','10/10/75'); INSERT INTO livre VALUES('l0001','SQL pour les nuls','informatique','4','2','00023','145'); Livre est une table qui hérite de document. Jusque là pas d'erreut sauf qd j'insere des values ds la table écrit : INSERT INTO ecrit VALUES('l0001','a0001'); J'obtient l'erreur suivante : ERROR: insert or update on table "ecrit" violates foreign key constraint "$1" DETAIL: Key (ref_doc)=(l0001) is not present in table "document". Cette erreut ce produit tjs a l'inserrtion de valeur dans une table d'association. Je n'y comprend rien vu que la valeur de ref_doc se trouve bien ds la table document:!!!! HELP!:!! HELP!! merci |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Inscription : octobre 2003 Messages : 266 ![]() |
Salut,
si si, cela marche très bien. C'est simplement ta clé étrangère ref_doc qui doit avoir pour référence livre(ref_doc) et non pas document(ref_doc). C'est tout. @+ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2004 Messages : 2 ![]() |
non, ce n'est pas ca car je possede d'autre table qui héritent tous de document (cd, dvd....) et ds ce cas, si je met livre(ref_doc) comme tu le dis, les autres classes (cd , dvd..) ne seront plus accessible par la table ecrit!
|
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Inscription : octobre 2003 Messages : 266 ![]() |
Salut,
Excuses-moi car j'avais modifié le nom de ta table document en livre car tu fais un insert dans la table livre : Code :
INSERT INTO livre VALUES('l0001','SQL pour les nuls','informatique','4','2','00023','145'); |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com