Probleme cle etrangere sur deux primary key [mySql] - SQL/NoSQL - Programmation
Marsh Posté le 15-01-2011 à 19:40:14
petit up si quelqu'un a des idées
Marsh Posté le 16-01-2011 à 00:46:38
up du soir/matin
Marsh Posté le 16-01-2011 à 10:35:11
Ce ne serait pas un problème au niveau des types des colonnes ?
Code :
|
Marsh Posté le 16-01-2011 à 13:54:45
Oh merci , je me sens honteux de pas avoir vu ça ^^
Je vais retest ça et je vous tiens au courant
encore merci
Marsh Posté le 15-01-2011 à 16:53:33
Bonjour a tous ,
Voila j'ai un petit probleme en sql , en effet je crée une bdd en mySql ,et dans cette base j'ai une table ( nom : Appartient) qui a un attribut qui est une fkey qui doit referencer deux primaray key de deux autre table (voir script de creation plus bas )
hors lors du lancement de script j'ai une erreur de type :
ERROR 1005 (HY000): Can't create table 'Appartient' (errno: 150)(/quote]
et un INNODB status :
[quote]Cannot find an index in the referenced table where the
referenced columns appear as the first columns, or column types
in the table and the referenced table do not match for constraint.
hors je n'arrive pas comprendre l'erreur ni a la corriger , quelqu'un aurait une idée svp ?
-- Table CompteClient
CREATE TABLE CompteClient (
Login VARCHAR(20) PRIMARY KEY,
MotDePasse VARCHAR(20) NOT NULL,
Email VARCHAR(40) NOT NULL,
Nom VARCHAR(20) NOT NULL,
Prenom VARCHAR(20) NOT NULL,
DateNaissance DATE,
Adresse VARCHAR(40) NOT NULL,
CodePostal INT NOT NULL,
Pays VARCHAR(20) NOT NULL,
IdCom INT
) ENGINE=INNODB;
-- Table Categorie
CREATE TABLE Categorie (
NomCategorie VARCHAR(20) PRIMARY KEY
) ENGINE=INNODB;
-- Table Titre
CREATE TABLE Titre (
INDEX idx_Titre(IdTitre),
IdTitre INT PRIMARY KEY,
Artiste VARCHAR(20) NOT NULL,
NomTitre VARCHAR(20) NOT NULL,
Album VARCHAR(20),
Prix INT NOT NULL,
NomCat VARCHAR(20) NOT NULL,
CONSTRAINT fk_nomCat
FOREIGN KEY (NomCat) REFERENCES Categorie(NomCategorie)
) ENGINE=INNODB;
-- Table Commande
CREATE TABLE Commande (
INDEX idx_Commande(IdCommande),
IdCommande INT PRIMARY KEY,
Date DATE NOT NULL,
Prix INT NOT NULL,
Log VARCHAR(20) NOT NULL,
CONSTRAINT fk_log
FOREIGN KEY (Log) REFERENCES CompteClient(Login)
) ENGINE=INNODB;
-- Table Appartient
CREATE TABLE Appartient (
Titre VARCHAR(20),
INDEX (Titre) ,
CONSTRAINT fk_titre
FOREIGN KEY (Titre) REFERENCES Titre(IdTitre),
Commande VARCHAR(20) NOT NULL,
INDEX (Commande) ,
CONSTRAINT fk_commande
FOREIGN KEY (Commande) REFERENCES Commande(IdCommande),
CONSTRAINT pk_titre_comm
) ENGINE=INNODB;
ALTER TABLE CompteClient
ADD CONSTRAINT fk_idCom FOREIGN KEY (IdCom) REFERENCES Commande(IdCommande);
Message édité par ichigo56 le 15-01-2011 à 19:39:54
---------------
«C'est ainsi, que périra le monde : dans la joie générale des gens spirituels qui croiront à une farce.»