MySQL Workbench
 sql >> Datenbank >  >> Database Tools >> MySQL Workbench

Errno 121, doppelter Schlüssel beim Schreiben oder Aktualisieren?

Dies liegt wahrscheinlich daran, dass Sie mindestens eine Einschränkung mit demselben Bezeichner wie eine Spalte benannt haben:

/* 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)

Sollte einen anderen Bezeichner für die Einschränkung verwenden, z. B. fk_restaurant wie in :

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

Und dasselbe beim food Tabelle:

  /* 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)

Das sind die einzigen drei, die ich sehe, aber es könnte andere geben, die ich übersehen habe.