SQL errno 150

Résolu/Fermé
Ksama - 23 févr. 2014 à 20:37
 Ksama - 23 févr. 2014 à 20:59
Bonjour,

J'ai l'erreur suivante lors de la création de la table "objetsLieux" :
ERROR 1005 (HY000) at line 114: Can't create table 'objetsLieux' (errno: 150)


J'ai lu qu'il s'agissait probablement d'un problème de clé étrangère, mais je n'arrive pas à trouver l'erreur.

CREATE TABLE versions (
	nom varchar(255) PRIMARY KEY
);

CREATE TABLE objets (
	nom varchar(255) PRIMARY KEY,
	description text NOT NULL,
	prixAchat int NOT NULL,
	prixVente int NOT NULL
);

CREATE TABLE lieux (
	nom varchar(255),
	region varchar(255),
	PRIMARY KEY (nom, region)
);

CREATE TABLE objetsLieux (
	version varchar(255),
	nomLieu varchar(255),
	regionLieu varchar(255),
	nomObjet varchar(255),
	quantite int NOT NULL,
	obtention text NOT NULL,
	PRIMARY KEY (version, nomLieu, regionLieu, nomObjet),
	FOREIGN KEY (version) REFERENCES versions (nom),
	FOREIGN KEY (nomLieu) REFERENCES lieux (nom),
	FOREIGN KEY (regionLieu) REFERENCES lieux (region),
	FOREIGN KEY (nomObjet) REFERENCES objets (nom)
);


Merci d'avance.

2 réponses

jee pee Messages postés 41179 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 27 avril 2025 9 606
Modifié par jee pee le 23/02/2014 à 20:46
Salut,

Je ne sais pas quel est ton SGBD

mais

FOREIGN KEY (nomLieu) REFERENCES lieux (nom),
FOREIGN KEY (regionLieu) REFERENCES lieux (region), 


ce n'est pas la clé de lieux

il faut probablement quelquechose comme
FOREIGN KEY (nomLieu,regionlieu) REFERENCES lieux (nom,region),


cdlt

        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
1
Effectivement, c'est la solution à mon problème.

Merci beaucoup de ton aide.
Bonne soirée.
0