【发布时间】:2021-06-16 10:14:59
【问题描述】:
例如这张表:
+-----------+--------+--------+
| data | entry1 | entry2 |
+-----------+--------+--------+
| id | 1 | 2 |
| user_id | 1 | 1 |
| killer_id | 2 | 2 |
| server_id | 6 | 6 |
| score | 100 | 50 |
+-----------+--------+--------+
我现在有很多条目,其中user_id、killer_id 和server_id 是相等的,它们的组合应该是唯一的。
我想删除所有重复的条目,只保留分数最低的条目。
如果我现在尝试使它们独一无二,我会得到一个错误
ALTER TABLE kill_server_table ADD UNIQUE unique_index(user_id, killer_id, server_id)
Integrity constraint violation: 1062 Duplicate entry '277-1834-24' for key 'unique_index'
如何实现这一点,或者有更好的方法让它们与众不同?
【问题讨论】:
-
谢谢,我已经编辑了帖子
-
“它们的组合应该是唯一的” - 为什么你没有一个
UNIQUE约束来防止这种情况首先发生?还是使用复合 PK? -
您的示例表与
ALTER语句不匹配。没有列user_id、killer_id或server_id...