mysql - 当执行多个唯一列时,我可以在 laravel 5.6 中给出自定义名称吗?

标签 mysql laravel-5 unique-key

考虑以下示例:

$table->unique(['site_id', 'inventory_items', 'lsd_location_id']);

这会引发错误:

SQLSTATE[42000]: Syntax error or access violation: 1059 Identifier name 'lsd_location_units_site_id_inventory_items_lsd_location_id_unique' is too long (SQL: alter table lsd_location_units add unique lsd_location_units_site_id_inventory_items_lsd_location_id_unique(site_id, inventory_items, lsd_location_id))

所以问题是:我可以给它一个不同的名称,并仍然保留唯一的 key ,这样可以代替它的长名称:sid_ii_lsd_location_unuiqe或类似的东西?

A) MYSQL 允许这样做吗?

B) 有办法解决这个问题吗?因为我需要这三个。

目标是每个站点的每个 LSD 位置 ID 只显示一个 inventory_item_id。

最佳答案

unique 的第二个参数是索引键名称,尝试:

$table->unique(['site_id', 'inventory_items', 'lsd_location_id'], 'sid_ii_lsd_location_unuiqe');

来自 Laravel docs : Laravel 会自动生成一个合理的索引名称,但您可以将第二个参数传递给方法来自己指定名称

MySQL 5.6 中的最大索引名称长度为 64 个字符 ( ref )

关于mysql - 当执行多个唯一列时,我可以在 laravel 5.6 中给出自定义名称吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51677798/

相关文章:

mysql - 一个查询即可显示升级链接和非升级链接

MySQL - 按日期 ASC 和 DESC 排序,具体取决于其他字段

c# - 不执行我的 MySql 查询

sql-server - sql server : Unique constraint generates unique key and unique index

mongodb - 如何在 Mongodb 集合中的嵌入数组上添加唯一索引

java - 如何在MYSQL数据库中存储文件列表

php - 我可以在 Laravel 5.2 中创建一个继承自 User 的新类吗?

ubuntu - Laravel 5 - 如何创建一个 Artisan 命令来执行 bash 脚本

php - 模型函数内部的 Laravel orm 数据库查询

mysql - 在插入之前触发生成唯一的 md5 哈希