【问题标题】:Laravel Database - PDOException Integrity constraint violation Cannot delete or updateLaravel 数据库 - PDOException 完整性约束冲突无法删除或更新
【发布时间】:2017-09-07 15:44:52
【问题描述】:

我使用Laravel 5.2.* 我的数据库有问题,当前是数据库表:

  Schema::create('telepon', function (Blueprint $table) {
        $table->timestamps();
        $table->integer('id_siswa')->unsigned()->primary('id_siswa');
        $table->string('nomor_telepon')->unique();

        $table->foreign('id_siswa')
                ->references('id')->on('siswa')
                ->onDelete('cascade')
                ->onUpdate('cascade');
    });

迁移后,终端中的“siswa”也存在一些问题:

[Illuminate\Database\QueryException] SQLSTATE[23000]:完整性约束违规:1217 无法删除或 更新父行:外键约束失败(SQL:drop 表siswa)

[PDO异常]
SQLSTATE [23000]:完整性约束违规:1217 无法删除或 更新父行:外键约束失败

我已经检查过

migrate:reset

migrate:refresh

migrate:rollback

同样的错误

请帮忙,谢谢

【问题讨论】:

  • 尝试手动删除所有表格,然后php artisan migrate

标签: laravel laravel-5.2 blade migrate


【解决方案1】:

这种类型的错误通常发生在您使用主键连接表时。 正如错误所说 cannot del or update parent table ,这意味着您应该从 mysql 表中删除依赖项,或者检查您的模型是否具有 has,have,in 等依赖项。 在法律语言中,您应该先删除子行,然后才能删除父行。
在您的情况下,telepon(id_siswa) 和 siswa(id) 已连接。所以首先尝试删除 siswa 中的列,然后删除 Telepon 中的列。

【讨论】:

    猜你喜欢
    • 2021-10-12
    • 2020-08-10
    • 2019-01-02
    • 2022-09-23
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 2019-10-24
    相关资源
    最近更新 更多