Bonjour,
J'essaye désespérément de créer une table avec des clés étrangères mais ca ne fonctionne pas. C'est la seule table qui ne fonctionne pas, les autres tables avec clés étrangères ont été créées sans aucun problème.
Cette table est OK:
Et voici la table qui ne se crée pas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE t_QteOptVeh ( `FK_Vehicule` INT NOT NULL, CONSTRAINT `FK_Vehicule_OV` FOREIGN KEY(`FK_Vehicule`) REFERENCES `T_Vehicule`(`IdVehicule`), `FK_Option` INT NOT NULL, CONSTRAINT `FK_Option_OV` FOREIGN KEY(`FK_Option`) REFERENCES `T_Options`(`IdOption`), `QteMax` INT NOT NULL, CONSTRAINT `PK_VehOpt` PRIMARY KEY(`FK_Vehicule`,`FK_Option`) ) TYPE = INNODB CHARACTER SET latin1 COLLATE latin1_swedish_ci;
J'ai chaque fois cette erreur: #1005 - Can't create table '.\nouvelle_db\t_qteoptloc.frm' (errno: 150)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE TABLE t_QteOptLoc ( `FK_Location` INT NOT NULL, CONSTRAINT `FK_Location_OL` FOREIGN KEY(`FK_Location`) REFERENCES `T_Location`(`IdLocation`), `FK_QteOptVeh` INT NOT NULL, CONSTRAINT `FK_Option_OL` FOREIGN KEY(`FK_QteOptVeh`) REFERENCES `T_QteOptVeh`(`FK_Vehicule`,`FK_Option`), `QteLouee` INT NOT NULL, PRIMARY KEY(`FK_Location`,`FK_QteOptVeh`) ) TYPE = INNODB CHARACTER SET latin1 COLLATE latin1_swedish_ci;
La deuxième clé étrangère de cette table correspond en fait a la clé primaire de la première table citée. Le problème c'est que la clé primaire est composée de 2 champs et je ne sais pas pourquoi il ne l'accepte pas ?
Erreur dans un nom ou paramètre ???
Merci
Partager