MySQL Workbench
 sql >> Base de données >  >> Database Tools >> MySQL Workbench

Errno 121, clé en double lors de l'écriture ou de la mise à jour ?

C'est probablement parce que vous avez nommé au moins une contrainte avec le même identifiant qu'une colonne :

/* You already have a column named `restaurant` in this table, 
   but are naming the FK CONSTRAINT `restaurant` also... */
CONSTRAINT `restaurant`
    FOREIGN KEY (`restaurant` )
    REFERENCES `mydb`.`restaurants` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)

Devrait utiliser un identifiant différent pour la contrainte comme fk_restaurant comme dans :

CONSTRAINT `fk_restaurant`
    FOREIGN KEY (`restaurant` )
    REFERENCES `mydb`.`restaurants` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)

Et même chose dans la food tableau :

  /* Name it fk_food */
  CONSTRAINT `fk_food`
    FOREIGN KEY (`food` )
    REFERENCES `mydb`.`food` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  /* Name it fk_restaurant */
  CONSTRAINT `fk_restaurant`
    FOREIGN KEY (`restaurant` )
    REFERENCES `mydb`.`restaurants` (`id` )
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)

Ce sont les trois seuls que je vois, mais il pourrait y en avoir d'autres que j'ai ratés.