gpt4 book ai didi

mysql - 如何使列值的唯一组合?

转载 作者:行者123 更新时间:2023-11-29 06:37:26 26 4
gpt4 key购买 nike

我有一个包含如下数据的表格:

id |  link  |  name  | date 
1 aa bob 1
1 aa tom 2
1 bb tom 3
2 cc lora 4

这意味着我可以在任何列中没有唯一的值,但我不能在同一行中具有相同的 id link name (日期并不重要)。这是我不能拥有的示例:

 id |  link  |  name  |  date 
1 aa bob 1
1 aa bob 2

我尝试过:

ALTER TABLE table ADD UNIQUE KEY `uk_id_link_name` (id, link, name);

还有:

ALTER TABLE `table` ADD UNIQUE `unique_index`(`id`, `link`, `name`);

但它给了我一个错误:

Duplicate entry

如何创建唯一的行(不唯一的列值的组合)?

编辑:我不想从表中删除重复项。

最佳答案

您的表已经违反了唯一约束。所以你需要摆脱那些有问题的值(value)观。

您可以删除除最早日期之外的所有日期:

delete t
from t join
(select id, link, name, min(date) as mindate
from t
group by id, link, name
) tt
using (id, link, name)
where date > mindate;

当数据兼容时,可以添加唯一约束。

注意:在执行此操作之前备份/制作表的副本,这样您就不会丢失可能真正需要的数据。

关于mysql - 如何使列值的唯一组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53171251/

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