MySQL:更改表并删除重复的唯一键

时间:2017-01-02 04:51:32

标签: mysql duplicates

我正在尝试根据几个列向我的表添加UNIQUE索引。但是,它识别重复的条目并且错误输出。我尝试使用IGNORE关键字,但它一直是depreciated entirely in 5.7

这是我的SQL:

ALTER TABLE `CotG`.`city_data` 
ADD UNIQUE INDEX `unique_index` (`date` ASC, `player` ASC, `city_id` ASC);

如何添加唯一键并自动删除重复的行?

编辑:这不是How to delete duplicates on a MySQL table?的重复,因为解决我的问题的答案是针对已经折旧的MySQL功能....这是我的一个问题这个问题......

1 个答案:

答案 0 :(得分:0)

此问题的最简单解决方案是基于先前的结构创建新表,并运行如下查询:

INSERT IGNORE INTO table1
    (field1, field2, etc)
SELECT
    field1,
    field2,
FROM
    table2

如果您希望保留最新记录(按照table1中存储的顺序),您可以添加:

 ON DUPLICATE KEY UPDATE