我正在尝试同步从MySQL Workbench到数据库的模式更改。当它试图创建外键时,我会遇到以下错误:

Executing SQL script in server
ERROR: Error 1005: Can't create table 'tomato.#sql-2730_1b8' (errno: 121)

这是它试图执行的声明:

ALTER TABLE `tomato`.`ing_allergy_ingredient` 
ADD CONSTRAINT `fk_ai_allergy`
FOREIGN KEY (`allergy_id` )
REFERENCES `tomato`.`ing_allergy` (`allergy_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION

这个错误意味着什么?

有帮助吗?

解决方案

如果您尝试添加一个已经使用的名称的约束,则将收到此消息。

根据这个 邮政 您可以这样检查您的约束:

如果您要创建的表格包括外键约束,并且您为该约束提供了自己的名称,请记住,它必须在数据库中是唯一的。运行此查询以查看该名称是否在某处使用:

SELECT
  constraint_name,
  table_name
FROM
  information_schema.table_constraints
WHERE
  constraint_type = 'FOREIGN KEY'
  AND table_schema = DATABASE()
ORDER BY
  constraint_name;
许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top