sql - 在 MySQL 中创建外键产生错误 :

标签 sql mysql foreign-keys mysql-error-1452

我试图在 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., CONSTRAINT FK_lead_appointment_CancellationID FOREIGN KEY (CancellationID) REFERENCES lead_appointment_cancellation (`)

我检查过 here

但是表中没有数据。

最佳答案

您不能对具有父表中不存在的预先存在数据的列应用外键约束。

如果您运行以下命令来填充 appointment_cancellation 表,您之后应该能够应用外键:

INSERT INTO appointment_cancellation
SELECT DISTINCT a.CancellationID
  FROM appointment

关于sql - 在 MySQL 中创建外键产生错误 :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3001668/

相关文章:

php - AJAX/PDO 冲突 (PHP/MySQL)

php - 动态/递归 SQL 排序方式

sql - Informix SQL 查询 : Two similar queries returning different results

mysql - 在另一个表中插入或更新时增加/减少列

php - mysql_fetch_assoc 很奇怪

mysql - MySQL 外键 'on delete restrict' 子句的确切含义

mysql - 使用 UNION 的 SQL 查询有效,但是当我用 MINUS 替换时不起作用

mysql - 通过 node.js 连接 aws mysql 时总是显示错误

ruby - activerecord 迁移中的外键与 schema.rb

php - MySQL/PHP : How to insert logged in user id into another table that is gathering data from a form that the user is inputting