MySQL Workbench
 sql >> Baza danych >  >> Database Tools >> MySQL Workbench

Errno 121, zduplikowany klucz przy zapisie lub aktualizacji?

Jest to prawdopodobnie spowodowane nazwaniem co najmniej jednego ograniczenia o tym samym identyfikatorze co kolumna:

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

Powinien użyć innego identyfikatora dla ograniczenia, takiego jak fk_restaurant jak w :

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

I to samo w food tabela:

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

To jedyne trzy, które widzę, ale mogą być też inne, które przegapiłem.



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. Zestaw znaków MySQL Workbench

  2. błąd 1215 MYSQL Nie można dodać ograniczenia klucza obcego,

  3. Instalowanie MySQL Workbench, ale plik /etc/my.cnf nie istnieje

  4. Czy autouzupełnianie MySQL Workbench działa?

  5. MySQL Workbench 5.2 CE, Windows 7, nie można połączyć się z MySQL Server na 127.0.0.1 (10061)