我有两张桌子
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)
请建议。