无法在现有表上删除外键?

时间:2019-11-11 07:02:23

标签: laravel foreign-keys migration

我正在尝试使用迁移将外键拖放到现有表中,但是它会引发错误,例如“语法错误或访问冲突:1091无法删除DROP consultant_id:检查列/键是否存在”。你能帮忙吗?

2 个答案:

答案 0 :(得分:0)

首先,您必须删除“外部约束”。

public function up() {
       Schema::table('table_name', function (Blueprint $table) {
            $table->dropForeign('table_name_consultant_id_foreign');
            $table->dropColumn('consultant_id');
        });

    }

答案 1 :(得分:0)

在删除表之前先禁用外键检查,然后再启用

DB::statement('SET FOREIGN_KEY_CHECKS=0;');
Schema::dropIfExists('your_choice_table');
DB::statement('SET FOREIGN_KEY_CHECKS=1;');