Probleme sur les clef etrangeres

Résolu
aaidez moi a creer une table qui est une relation de deux table existantes. en mode console de mysql on me dit ''imposible d'ajouter les contraintes d'index externes.

3 réponses

  1. Contributeur
    Je pense que tu dois spécifier le nom des autres tables, et les noms des clés correspondantes dans les autres tables :
    create table livrer( 
    id_liv smallint auto_increment, 
    id_four int, 
    id_mat int, 
    nb_mat int; 
    primary key(id_liv), 
    constraint fk_livrer1 foreign key(id_four)
     REFERENCES autretable1 (cle1) 
    constraint fk_livrer2 foreign key(id_mat)
     REFERENCES autretable2(cle2) 
    )engine=innodb; 
    1. Oui j'ai specifié mais la meme chose mysql me dit
    2. Contributeur
      peux-tu montrer le
      create
      que tu as modifié, et la définition des deux autres tables?
    3. create table fournisseur(
      id_four smallint unsigned auto_increment,
      nom vachar(100) not null,
      prenom vachar(100) not null,
      d_nais date,
      primary key(id_four)
      )engine=innodb;

      &

      create tabe materiel(
      id_mat smallint unsigned auto_increment,
      label_mat vachar(50), not null
      type_mat varchar(100),
      primary key(id_mat)
      )engine=innodb;

      donc la relation des deux table au dessus recoit la concatenation de leur clef primaire que je fais ci-dessus

      create table livrer(
      id_liv smallint unsigned auto_increment,
      id_mat int,
      id_four int,
      nb_mat int(50)
      primary key(id_liv),
      constraint fk_fourneur foreign key(id_four) references fournisseur(id_four),
      constraint fk_materiel foreign key(id_mat) references materiel(id_mat)
      )engine=innodb;

      "imposssible d'ajouter les contrainte d'index externe" dit msql
    4. Contributeur
      Je vois que le type de tes clés n'est pas le même dans les différentes tables...
    5. oui sa doit etre sa chief