MySQL ALTER TABLE 创建 : 'Integrity constraint violation: 1452'

标签 mysql alter-table

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

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 引擎。

最佳答案

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

关于MySQL ALTER TABLE 创建 : 'Integrity constraint violation: 1452' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9135523/

相关文章:

mysql - sql中的意外错误1054

sql-server-2005 - 在 SQL Server 事务中更改表

MySQL 日期格式 - 插入日期的困难

mysql - 更改表错误

PHP 卡在 MySQL 的 delete 语句上

php - 带有额外分组的mysql排序字段增量值

mysql - 创建一个触发器以根据插入的行更改表添加列

sql-server - 如何在 SQL Server 中将列的数据类型从整数更改为文本?

2 个表之间的 PHP/MySQL 关系

php - 检查是否存在多对多关系