私は2つのテーブルを持っています
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)
提案してください。