MySQL ALTER TABLE创建:'完整性约束违规:1452'

时间:2012-02-03 21:10:20

标签: mysql alter-table

以下代码执行时会产生以下错误:

致命错误:带有消息'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引擎。

1 个答案:

答案 0 :(得分:4)

submissions包含status列中的值,该值在新创建的submission_statuses表中不存在。在创建约束之前必须填充submission_statuses表。