【问题标题】:Laravel Delete (Integrity Constraint Violation)Laravel 删除(违反完整性约束)
【发布时间】:2019-01-02 23:12:39
【问题描述】:

我正在尝试在我的控制器上实现删除,但出现此错误:

完整性约束违规:1451 无法删除或更新父行:外键约束失败(`greatsup_wz`.`entryitems`, CONSTRAINT `entryitems_fk_check_entry_id` FOREIGN KEY (`entry_id`) REFERENCES `entries` (`id`)) (SQL: delete from `greatsup_wz`.`entries` where `id` = 686)

这是我的一段代码:

$entryTable     =   DB::table(config("app.DB_ACCOUNTING").".entryitems")
                    ->where('entryref_id','=',100)->get();
foreach($entryTable as $entryTbl):
  DB::table(config("app.DB_ACCOUNTING").".entries")
  ->where('id','=',$entryTbl->entry_id)->delete(); // this is where my error occurred
endforeach;

我该如何解决?

【问题讨论】:

    标签: mysql sql laravel-5 laravel-query-builder


    【解决方案1】:

    您添加的约束将阻止数据被删除。您需要更新数据库架构。需要在 entryitems 迁移中添加 onDelete('cascade')

    Schema::create('tablename', function (Blueprint $table) {
    
        $table->integer('columnName')->unsigned();
        $table->foreign('columnName')->references('columnName')->on('relatedTableName')->onDelete('cascade');
    });
    

    【讨论】:

      猜你喜欢
      • 2019-04-12
      • 2016-08-11
      • 1970-01-01
      • 2012-11-27
      • 2017-09-11
      • 2020-06-14
      • 2016-05-25
      • 2020-01-14
      相关资源
      最近更新 更多