gpt4 book ai didi

mysql - 如何添加约束唯一包含比默认字符更多的两列

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

我想添加唯一的列,即标题、语言和下载(3 列)。因为我没有其他选项来删除重复的条目。这是代码:

ALTER TABLE datapdf ADD CONSTRAINT tb_uq UNIQUE (title, language, download);

但我收到此错误:

1071 - 指定的键太长;最大 key 长度为 1000 字节

有什么解决办法吗?但请记住,它应该通过这三列进行匹配。

最佳答案

看来你这三栏的长度太长了,我测试了一下,你看一下。

drop table if exists datapdf;
create table datapdf
(
title varchar(200),
language varchar(300),
download varchar(510)
);

ALTER TABLE datapdf ADD CONSTRAINT tb_uq UNIQUE (title, language, download);

我收到与您相同的错误。

Error Code: 1071. Specified key was too long; max key length is 767 bytes

但是如果我更改表datapdf的结构,它就会成功运行。

drop table if exists datapdf;
create table datapdf
(
title varchar(100),
language varchar(100),
download varchar(100)
);

ALTER TABLE datapdf ADD CONSTRAINT tb_uq UNIQUE (title, language, download);

这是操作

ALTER TABLE datapdf ADD CONSTRAINT tb_uq UNIQUE (title, language, download)

所以我认为你可以更改表的结构(如果可能)来解决这个问题。但是,这不是一个好的解决方案,因为你可能会丢失数据。最好的解决方案之一是@N.B 说(这个问题的第一条评论):“
添加第四列。保存 3 列组合的哈希值。使该列独一无二。”

关于mysql - 如何添加约束唯一包含比默认字符更多的两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38682099/

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