MySQL 错误:无法创建表(errno:121“写入或更新时重复键”)

2024-05-04

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

当我将代码放入 phpMyAdmin 时,它显示错误(#1005 - 无法创建表wypozyczalnia.wypozyczenie(错误号:121“写入或更新时密钥重复”))

哪里有问题? :( 外键 - 表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[...]

正如错误消息所示:您必须使用相同的约束名称两次。该约束甚至可能位于不同的表中,因为约束名称在数据库中必须是唯一的 http://dev.mysql.com/doc/refman/5.7/en/create-table.html:

约束符号

如果给出了 CONSTRAINT 符号子句,则符号值(如果使用), 在数据库中必须是唯一的。重复的符号会导致 错误。如果未给出该子句,或未包含符号 在 CONSTRAINT 关键字之后,创建约束的名称 自动地。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL 错误:无法创建表(errno:121“写入或更新时重复键”) 的相关文章

随机推荐