我创建了唯一索引:
$table->unique(['owner_id', 'promoter_id']);
现在我把它扔了
$table->dropUnique(['owner_id', 'promoter_id']);
常规错误:1553无法删除索引“connections\u owner\u id\u promotor\u id\u unique”:外键约束中需要此索引(sql:alter table connections drop index connections\u owner\u id\u promotor\u id\u unique)
而且,我以前也试过删除外键
$table->dropForeign('connections_promoter_id_foreign');
但还是没有结果
4条答案
按热度按时间nhhxz33t1#
基于此删除多列唯一键而不删除外键?我得到了同样有效的解决方案:
wfsdck302#
从索引上的laravel docs,您可以创建具有指定名称的唯一索引:
因此,为了省去您调试laravel如何构造索引的名称,您可以在添加索引时为其指定一个名称,例如:
当你放下它时,你用的是同一个名字:
puruo6ea3#
使用php管理,我有同样的问题,但很容易做到这一点!
niwlg2el4#
先删除约束。
对于sqlserver:如果不知道约束名称,请使用
sp_helpconstraint TABLE_A
,约束名称可能与索引相同。那么alter table TABLE_A drop constraint UQ__TABLE_A_XXXXXXXXXX
。然后,删除索引。