#1005 - Can't create table

Fermé
Rifia - 7 sept. 2010 à 13:16
 Rifia - 7 sept. 2010 à 15:37
Bonjour,

j'aimerai creer une base de données composée de tables liées entre elles par des clés etrangères.
C'est la première foi que je fais ca et le problème est le suivant :

je veux creer une table 'composer' qui est une association porteuse transformée en table et qui contient les 3 champ suivant : quantité, i_id, r_id.

Dans MySql j'écris ca comme ca :
CREATE TABLE 'composer' (
'i_id' INT( 4 ) AUTO_INCREMENT ,
'r_id' VARCHAR( 4 ) NOT NULL ,
'quantité' VARCHAR( 10 ) NOT NULL ,
CONSTRAINT pk_composer PRIMARY KEY(i_id),
CONSTRAINT fk_compose_recettes FOREIGN KEY (r_id) REFERENCES recettes(r_id),
CONSTRAINT fk_compose_ingredients FOREIGN KEY (i_id) REFERENCES ingredients(i_id)
) TYPE = InnoDB

et j'ai l'erreur suivante : #1005 - Can't create table 'recettes.composer' (errno: 150) (<a href="server_engines.php?engine=InnoDB&page=Status&token=34874afcea2b6ad6b1438431c5a01ad2">Détails...</a>)

Quelqu'un pourrait m'aider à resoudre mon erreur ?

Merci bien
Rifia


2 réponses

Reivax962 Messages postés 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
Modifié par Reivax962 le 7/09/2010 à 15:22
Bonjour,

Ta clé i_id est à la fois une clé étrangère et une clé primaire en Auto_increment : cela pose problème !
Il te faudrait une clé primaire c_id en auto_increment plutôt.
Ou alors, tu enlèves toute clé en auto_increment, et ta clé primaire serait plutôt une clé double, (i_id, r_id)

Xavier
1
Merci merciii :)

Rifia
0