MySQL 8.0 在现有字段上添加唯一索引

问题描述:建表不慎,没加unique属性,导致插入重复数据且没有报错
需求:去除重复数据,并给某两个字段添加唯一值
5.6方案:ALTER IGNORE TABLE `forex`.`sum` ADD UNIQUE `ind` (`time`, `symbol`);
5.7.24以上不再支持此语法

解决方案:
1、复制表结构,并在新表上添加唯一索引
2、REPLACE INTO `sum2` SELECT * FROM `sum` WHERE 1 order by `time` (量大时分批复制)
3、删除原表,重命名新表
done.

你可能感兴趣的:(MySQL 8.0 在现有字段上添加唯一索引)