不能在mysql中删除复合唯一索引

ffx8fchx  于 2021-06-24  发布在  Mysql
关注(0)|答案(0)|浏览(214)

我有一个lumen 5.5(MySQL5.7)应用程序,我在数据库迁移中创建了一个唯一索引:

Schema::table('form_data', function (Blueprint $table){
    $table->unique(['organisation_id', 'template_id', 'entity_type_id', 'entity_id'], 'form_data_identifier');
    // name of the index is 'form_data_identifier'
});

down 迁移,我尝试删除索引:

Schema::table('form_data', function (Blueprint $table){
    $table->dropUnique('form_data_identifier');
});

但我得到了错误信息:
在connection.php第664行中:sqlstate[hy000]:常规错误:1553无法删除索引“form\u data\u identifier”:外键约束中需要索引(sql:alter table) form_data 删除索引 form_data_identifier )
我自己也尝试使用这两种方法直接在数据库上运行查询 DROP INDEX x ON y 以及 ALTER TABLE y DROP INDEX x 语法,我得到同样的错误。我查过了,这个索引 form_data_identifier 未被任何其他表或键引用(注意:组成unique键的一些键是外键,但我认为这不是问题。)
我会错过什么?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题