#1005 - Can't create table

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

  1. 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