我试图在 MySQL 中的表上创建一个外键,但我遇到了一个奇怪的错误,在我的任何搜索中似乎都没有关于它的信息。
我正在用这个创建 key (从 mysql workbench 5.2 发出):
ALTER TABLE `db`.`appointment`
ADD CONSTRAINT `FK_appointment_CancellationID`
FOREIGN KEY (`CancellationID` ) REFERENCES `db`.`appointment_cancellation` (`ID` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
, ADD INDEX `FK_appointment_CancellationID` (`CancellationID` ASC) ;
此时我得到了错误:
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (
alarmtekcore
., CONSTRAINTFK_lead_appointment_CancellationID
FOREIGN KEY (CancellationID
) REFERENCESlead_appointment_cancellation
(`)
我检查过 here
但是表中没有数据。
最佳答案
您不能对具有父表中不存在的预先存在数据的列应用外键约束。
如果您运行以下命令来填充 appointment_cancellation 表,您之后应该能够应用外键:
INSERT INTO appointment_cancellation
SELECT DISTINCT a.CancellationID
FROM appointment
关于sql - 在 MySQL 中创建外键产生错误 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3001668/