SQL errno 150

Résolu
Ksama -  
 Ksama -
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 41520 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
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
Ksama
 
Effectivement, c'est la solution à mon problème.

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