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

时间:2013-01-30 07:46:41

标签: mysql foreign-keys

我有两张桌子

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)

请建议。

1 个答案:

答案 0 :(得分:0)

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