[mySql] Probleme cle etrangere sur deux primary key

Probleme cle etrangere sur deux primary key [mySql] - SQL/NoSQL - Programmation

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 :

 
Citation :

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 ?

  
Spoiler :


-- 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.»
Reply

Marsh Posté le 15-01-2011 à 16:53:33   

Reply

Marsh Posté le 15-01-2011 à 19:40:14    

petit up si quelqu'un a des idées


---------------
«C'est ainsi, que périra le monde : dans la joie générale des gens spirituels qui croiront à une farce.»
Reply

Marsh Posté le 16-01-2011 à 00:46:38    

up du soir/matin


---------------
«C'est ainsi, que périra le monde : dans la joie générale des gens spirituels qui croiront à une farce.»
Reply

Marsh Posté le 16-01-2011 à 10:35:11    

Ce ne serait pas un problème au niveau des types des colonnes ?  [:cupra]  
 

Code :
  1. -- Table Appartient
  2. CREATE TABLE Appartient (
  3. Titre  INT,
  4. INDEX     (Titre) ,
  5. CONSTRAINT fk_titre
  6. FOREIGN KEY (Titre) REFERENCES Titre(IdTitre),
  7. Commande  INT NOT NULL,
  8. INDEX       (Commande) ,
  9. CONSTRAINT fk_commande
  10. FOREIGN KEY (Commande) REFERENCES Commande(IdCommande),
  11. CONSTRAINT pk_titre_comm
  12. ) ENGINE=INNODB;


 
 :jap:


---------------
And in the end, the love you take is equal to the love you make
Reply

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


---------------
«C'est ainsi, que périra le monde : dans la joie générale des gens spirituels qui croiront à une farce.»
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed