SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行(Laravel 6) [英] SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row (Laravel 6)

查看:69
本文介绍了SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行(Laravel 6)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在做什么错了?

环境:Laravel 6,宅基(本地),Windows 10

Environment: Laravel 6, Homestead (Local), Windows 10

创建外部表(迁移):

Schema::create('external', function (Blueprint $table) {
                $table->increments('id')->unsigned();
                $table->foreign('id')->references('order_id')->on('order');
            });

创建订单表(迁移):

Schema::create('order', function (Blueprint $table) {
    $table->increments('id');
    $table->unsignedInteger('order_id')->index();

External.php(模型):

External.php (model):

class External extends Model
    public function orders()
    {
        return $this->hasMany(Order::class);
    }
}

Order.php(模型):

Order.php (Model):

public function external()
{
    return $this->belongsTo(External::class);
}

错误消息:

SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行:外键约束失败( homestead . external ,CONSTRAINT external_id_foreign外键( id )参考 order ( order_id ))(SQL:插入 external ( site_order_id order_status ,...

SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (homestead.external, CONSTRAINT external_id_foreign FOREIGN KEY (id) REFERENCES order (order_id)) (SQL: insert into external (site_order_id, order_status,...

推荐答案

该错误是常见错误,很容易解释.您的Laravel代码正在生成一个(或多个)插入,该插入指向 order 表中不存在的记录.尝试运行以下查询:

The error is a common one, and easy to explain. Your Laravel code is generating one (or more) insert which is referring to a record in the order table which does not exist. Try running the following query:

SELECT o.*
FROM [order] o
WHERE order_id = <external.id value here>

如果返回空结果集,则表示您的插入内容引用的是 order 中不存在的数据.

If you get back an empty result set, then it means your insert is referring to data in order which does not exist.

这篇关于SQLSTATE [23000]:违反完整性约束:1452无法添加或更新子行(Laravel 6)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆