MySQL错误:无法创建表(错误:121"写入或更新时复制键")

时间:2016-11-27 21:55:49

标签: php mysql sql database

我使用MySQL Workbench生成数据库的图表和代码。

enter image description here

当我将代码放入phpMyAdmin时,它显示错误(#1005 - 无法创建表wypozyczalniawypozyczenie(错误:121"写入或更新时重复键&# 34))

问题出在哪里? :( 外键 - 表wypozyczenie

enter image description here

错误来自这部分代码:

CREATE TABLE IF NOT EXISTS `wypozyczalnia`.`wypozyczenie` (
`id_wyp` INT NOT NULL,
`data_wyp` DATE NOT NULL,
`data_odd` DATE NOT NULL,
`id_samochod` INT NOT NULL,
`id_klient` INT NOT NULL,
`id_pracownik` INT NOT NULL,
`id_plac_wyp` INT NOT NULL,
`id_plac_odd` INT NULL,
`cena` INT NULL,
`kaucja` INT NULL,
PRIMARY KEY (`id_wyp`),
INDEX `id_klient_idx` (`id_klient` ASC),
INDEX `id_samochod_idx` (`id_samochod` ASC),
INDEX `id_placowka_idx` (`id_plac_odd` ASC),
INDEX `id_pracownik_idx` (`id_pracownik` ASC),
INDEX `id_plac_wyp_idx` (`id_plac_wyp` ASC),
CONSTRAINT `id_klient_klient`
FOREIGN KEY (`id_klient`)
REFERENCES `wypozyczalnia`.`klient` (`id_klient`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `id_samochod_samochody`
FOREIGN KEY (`id_samochod`)
REFERENCES `wypozyczalnia`.`samochody` (`id_samochod`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `id_placowka_placowka`
FOREI[...]

1 个答案:

答案 0 :(得分:5)

正如错误消息所示:您必须使用相同的约束名称两次。由于约束名称must be unique in a database

,约束甚至可能位于不同的表中
  

CONSTRAINT符号

     

如果给出了CONSTRAINT符号子句,则使用符号值(如果使用)   必须在数据库中是唯一的。重复的符号会产生一个   错误。如果没有给出该条款,或者不包括符号   在CONSTRAINT关键字之后,创建约束的名称   自动。