以下代码执行时会产生以下错误:
致命错误:带有消息'SQLSTATE [23000]的未捕获异常'PDOException':完整性约束违规: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引擎。
答案 0 :(得分:4)
表submissions
包含status
列中的值,该值在新创建的submission_statuses
表中不存在。在创建约束之前必须填充submission_statuses
表。