下面的代码在执行时会产生以下错误:
fatal error :未捕获异常“PDOException”,消息为“SQLSTATE[23000]:违反完整性约束:1452 无法添加或更新子行:外键约束失败
$db->executeUpdate('CREATE TABLE submission_statuses (name VARCHAR(255) NOT NULL,
weight INT NOT NULL, PRIMARY KEY(name)) ENGINE = InnoDB');
$db->executeUpdate('ALTER TABLE submissions ADD CONSTRAINT IDX_4
FOREIGN KEY (status) REFERENCES submission_statuses(name)');
$db->executeUpdate('CREATE INDEX IDX_4 ON submissions (status)');
这两个表都使用了 InnoDB 引擎。
最佳答案
表 submissions
在 status
列中包含一个值,该值在新创建的 submission_statuses
表中不存在。在创建约束之前必须填充 submission_statuses
表。
关于MySQL ALTER TABLE 创建 : 'Integrity constraint violation: 1452' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9135523/