考虑以下示例:
$table->unique(['site_id', 'inventory_items', 'lsd_location_id']);
然后抛出错误:
sqlstate[42000]:语法错误或访问冲突:1059标识符名称“lsd\u location\u units\u site\u id\u inventory\u items\u lsd\u location\u id\u unique”太长(sql:alter table) lsd_location_units
添加唯一的 lsd_location_units_site_id_inventory_items_lsd_location_id_unique
( site_id
, inventory_items
, lsd_location_id
))
所以问题是:我能给它一个不同的名称,并且仍然保持唯一键的原样吗,所以代替它的长名称: sid_ii_lsd_location_unuiqe
或者类似的?
a) mysql允许这样做吗?
b) 有办法解决这个问题吗?因为我需要这三个。
目标是说每个站点每个lsd位置id只有一个库存物品id。
1条答案
按热度按时间mwkjh3gx1#
第二个论点
unique
是索引键名称,请尝试:来自laravel docs:
Laravel will automatically generate a reasonable index name, but you may pass a second argument to the method to specify the name yourself
MySQL5.6中的最大索引名长度为64个字符(ref)