删除索引列中的唯一索引

时间:2019-06-08 10:21:03

标签: mysql laravel laravel-5 migration

我需要从一列中删除UNIQUE,mas给我一个错误

想想这是否是reson droppig索引,并在删除索引后再次添加它,但不确定这是否正确。

这是我第一次迁移的方式: $table->bigInteger('user_id')->unique()->index()->unsigned();

除此之外,我在投放时尝试执行的操作 $table->dropUnique(['user_id']);

它给e这个错误:

  

Illuminate \ Database \ QueryException:SQLSTATE [HY000]:常规错误:   1553无法删除索引'models_user_id_unique':在外部   关键约束(SQL:alter table models删除索引   models_user_id_unique

1 个答案:

答案 0 :(得分:0)

拖放外键并删除唯一索引并再次创建外键

public function down()
{
    Schema::table('models', function (Blueprint $table) {
        $table->dropForeign(/* Foreign key name */);
    });

    Schema::table('models', function (Blueprint $table) {
        $table->dropUnique(['user_id']);
    });

    Schema::table('models', function (Blueprint $table) {
        /* Creating back the foreign key here */
    });
}