0

我有两张桌子

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`)
); 

两张表都已经有很多数据了。

我想在 patient_doctor_decision.help_entity_id 字段和 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)

请建议。

4

1 回答 1

0

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

于 2013-01-30T08:23:49.560 回答