sql >> Database teknologi >  >> Database Tools >> MySQL Workbench

Errno 121, dubleret nøgle ved skrivning eller opdatering?

Dette er sandsynligvis fordi du har navngivet mindst én begrænsning med samme identifikator som en kolonne:

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

Skal bruge en anden identifikator for begrænsningen som fk_restaurant som i :

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

Og det samme i food tabel:

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

Det er de eneste tre, jeg ser, men der kunne være andre, jeg savnede.



  1. phpMyAdmin-problem med specifik tabel kan ikke redigere rækkefejl med blank where-sætning

  2. PHP:maksimal udførelsestid ved import af .SQL-datafil

  3. Hvordan sender du flere kommandoer til SQL PowerShell fra Windows-kommandolinjen?

  4. SSMS:Når du vælger en streng i scriptet, skal du fremhæve de samme bogstaver