我使用MySQL Workbench生成数据库的图表和代码。
当我将代码放入phpMyAdmin时,它显示错误(#1005 - 无法创建表wypozyczalnia
。wypozyczenie
(错误:121"写入或更新时重复键&# 34))
问题出在哪里? :(
外键 - 表wypozyczenie
错误来自这部分代码:
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[...]
答案 0 :(得分:5)
正如错误消息所示:您必须使用相同的约束名称两次。由于约束名称must be unique in a database:
,约束甚至可能位于不同的表中CONSTRAINT符号
如果给出了CONSTRAINT符号子句,则使用符号值(如果使用) 必须在数据库中是唯一的。重复的符号会产生一个 错误。如果没有给出该条款,或者不包括符号 在CONSTRAINT关键字之后,创建约束的名称 自动。