gpt4 book ai didi

mysql - 修复多列唯一约束 E 上的 "maximum key length...."警告的最佳方法

转载 作者:行者123 更新时间:2023-11-29 18:00:52 25 4
gpt4 key购买 nike

我必须在表中实现 4 个不同列的唯一组合,但出现此错误:

Warning! The maximum key length is 900 bytes. The index 'a1_un' has maximum length of 1544 bytes. For some combination of large values, the insert/update operation will fail.

我理解了错误并知道如何修复它(通过更改列的大小)。但这是消除此错误的最佳方法并且效果很好。我还读到它仍然有效,因为它只是一个警告。

ADD CONSTRAINT a1_un UNIQUE([col1],[col2],[col3],[col4]);

col1、col2、col3、col4 均为 NVARCHAR(256)

最佳答案

900 字节限制看起来确实像 SQL Server。答案是你不能直接这样做。您可以添加一个新列来减小键的大小并对其实现唯一约束。

alter table t
add combined as (left(col1, 200) + '|' + left(col2, 200) + '|' + left(col3, 200) + '|' + left(col4, 200));

alter table t
add constraint unq_t_combined unique(combined);

这与您的逻辑不完全一样,但它可能会满足您的需求。

另一种选择是在列值的哈希上构建唯一索引。

关于mysql - 修复多列唯一约束 E 上的 "maximum key length...."警告的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48356704/

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