gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:07:21 25 4
gpt4 key购买 nike

考虑以下示例:

$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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com