【问题标题】:Laravel SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent rowLaravel SQLSTATE [23000]:完整性约束违规:1451 无法删除或更新父行
【发布时间】:2021-10-12 06:41:33
【问题描述】:

我想删除一个教师,但我遇到了这个错误

SQLSTATE[23000]:完整性约束违规:1451 无法删除或更新父行:外键约束失败(trouverm_m_ecole.etablissement_filieres,约束etablissement_filieres_id_filieres_foreign外键(id_filieres)参考filieres (id)) (SQL: 从filieres 中删除id = 1)

我的迁移

Schema::create('etablissement_filieres', function (Blueprint $table) {
    $table->id();
    $table->bigInteger('id_etablissements')->unsigned();
    $table->foreign('id_etablissements')->references('id')->on('etablissements');
    $table->bigInteger('id_filieres')->unsigned();
    $table->foreign('id_filieres')->references('id')->on('filieres');
    $table->string('prise_en_charge');
    $table->string('prix');
    $table->string('prix_affecte')->nullable();
    $table->timestamps();
});

我的控制器

public function destroy($id)
{
    Filiere::destroy($id);

    return redirect('/tableau-de-bord/admin/dashboard/sindhost/toutes-les-filieres');
}

有什么想法吗?

【问题讨论】:

    标签: mysql laravel


    【解决方案1】:

    问题是,有一个 etablissement_fileieres 记录引用了 fileieres 的记录。除非您已指定删除一条被另一条记录引用为外键的记录时要执行的操作,否则它不允许您删除外键记录。处理这种情况的理想方法是指定删除外键记录时要执行的操作。查看 Laravel 文档的 Foreign Key Constraints 以查看可用选项。查看它显示如何定义操作的部分,例如,

    ->onUpdate('级联') ->onDelete('级联');

    【讨论】:

      猜你喜欢
      • 2022-11-02
      • 2020-08-10
      • 2016-05-31
      • 2020-09-29
      • 2022-09-23
      • 2020-01-23
      • 2015-09-02
      • 2020-01-31
      • 2021-03-22
      相关资源
      最近更新 更多