【问题标题】:cant drop foreign key on existing table?不能在现有表上删除外键?
【发布时间】:2020-03-06 20:59:23
【问题描述】:

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

【问题讨论】:

标签: laravel foreign-keys migration


【解决方案1】:

首先,你必须放弃外部约束。

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

    }

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-10-26
      • 2014-02-09
      • 2023-03-23
      • 2021-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多