繁体   English   中英

MySQL外键无法创建表错误:121

[英]MySQL Foreign Key Can't create table error:121

我有两张桌子

CREATE TABLE `patient_doctor_decision` (
  `id` bigint(50) NOT NULL,
  `help_entity_id` bigint(50) NOT NULL,
  `description` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `help_entity` (
  `id` bigint(50) NOT NULL AUTO_INCREMENT,
  `type` int(50) NOT NULL,
  `comments` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
); 

这两个表已经有很多数据。

我想在带有help_entity.id字段的Patient_doctor_decision.help_entity_id字段上建立FK关系。

ALTER TABLE `patient_doctor_decision`  
  ADD CONSTRAINT `fk_help_entity` FOREIGN KEY (`help_entity_id`) REFERENCES `help_entity`(`id`);

我已经验证了外键是有效的,并且没有任何外键不存在于被引用的表中作为主键。

SELECT * FROM patient_doctor_decision d WHERE d.help_entity_id NOT IN (
    SELECT id FROM help_entity);

返回0行。

但是当我执行上面提到的Alter语句时,我得到了这个错误

ERROR 1005: Can't create table 'mydb.#sql-57c_9' (errno: 121)

请提出建议。

好吧,我没有确切的工作方法,但是更改外键约束名称对我来说有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM