我正在尝试运行通过此迁移创建的表inventories
的迁移:
Schema::create('inventories', function (Blueprint $table) {
$table->increments('id');
$table->integer('remote_id')->unsigned();
$table->integer('local_id')->unsigned();
$table->string('local_type');
$table->string('url')->nullable()->unique();
$table->timestamps();
});
我正在尝试添加一个run a迁移,其中我正在向表中添加一个外键:
Schema::table('inventories', function (Blueprint $table) {
$table->foreign('local_id')->references('id')->on('contents')->onDelete('cascade');
});
但是,当我尝试运行迁移时,却出现了一个错误:
[照亮\Database\QueryException]
SQLState[23000]:完整性约束冲突:1452无法添加或更新子行:外键约束失败(middleton
.#SQL-5D6_162A
,constraintinventories_local_id_foreign
外键(local_id
)引用删除级联时的contents
(local_id
)引用contents
(id
)(SQL:alter
[PDOException]
SQLState[23000]:完整性约束冲突:1452无法添加或更新子行:外键约束失败(middleton
.#SQL-5D6_162A
,constraintinventories_local_id_foreign
删除级联时的外键(local_id
)引用contents
(id
我做错了什么?
我也有同样的问题。通过将nullable
添加到字段:
Schema::create('table_name', function (Blueprint $table) {
...
$table->integer('some_id')->unsigned()->nullable();
$table->foreign('some_id')->references('id')->on('other_table');
...
});
请注意,迁移之后,所有已存在的行都将具有some_id=null
。
UPD:
因为Laravel 7有更短的方法来做同样的事情:
$table->foreignId('some_id')->nullable()->constrained();
同样非常重要的是,nullable
位于constraint
之前。
更多信息可以在官方文档中找到
您可能在inventories
表中有一些记录,其local_id
在contents
表中没有相应的id
,因此出现错误。您可以通过以下两种方法之一来解决问题:
foreign_key_checks
的情况下运行迁移。这将禁用现有行的外键约束(如果需要的话)。这里有文档contents
表中具有相应ID
字段的那些记录。您可以使用插入到..WHERE exists
查询以筛选出记录,并仅插入那些记录。我正在尝试将值插入到我的comments表中,但我得到了一个错误。它的意思是我不能添加或更新子行,我不知道这意味着什么。 SQLSTATE[23000]:完整性约束冲突:1452无法添加或更新子行:外键约束失败(.,约束外键()引用()删除时不执行更新时不执行操作)
我有一个简单的团体模型和一个联系模型。 联系人”物品到”一个组和一个组”has很多”联系人。 因此,我的文章migration有一个外键,名为“user_id”。 Contact.php
问题内容: 我试图在我的注释表中插入值,但出现错误。俗话说,我不能添加或更新子行,我也不知道这意味着什么。我的架构如下所示: 我尝试执行的mysql语句如下所示: 我得到的错误看起来像这样: SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败(。,CONSTRAINT FOREIGN KEY()引用()删除无操作,更新无操作) 问题答案: 这仅表示在表 co
问题内容: 当我不想相互连接两个表时,我得到以下消息:#1452-无法添加或更新子行:外键约束失败....我想从facebook_users表格中连接oauth_uid2(主键)外键为oauth_uid2的错误列表。但是我总是得到这个信息。我已经清除了数据,但没有任何效果。在表users_facebook中,我还有1条记录。 1452-无法添加或更新子行:外键约束失败(。,在更新级联上删除级联时使
当我不想将两个表相互连接时,我收到消息:#1452 - 无法添加或更新子行:外键约束失败....我想使用外键oauth_uid2将oauth_uid2(主键)从facebook_users选项卡连接到错误选项卡。但我总是收到这个信息。我已经清除了我的数据,但没有任何效果。同样在表中users_facebook我有 1 条记录。 1452-无法添加或更新子行:外键约束失败(., CONSTRAINT
问题内容: 我试图在我的注释表中插入值,但出现错误。俗话说,我不能添加或更新子行,我也不知道这意味着什么。 我的架构看起来像这样 和我试图做的mysql语句看起来像这样 我得到的错误看起来像这样 SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败(。,CONSTRAINT FOREIGN KEY()引用()删除无操作,更新无操作) 问题答案: 这只是意味着您