遇到的情况:
一张有两万多条数据的表,有重复记录,想通过添加复合主键来阻止后续的重复数据,但是原数据还不能删除,该怎么办?
解决方法:
复制表A的数据跟结构到A_COPY表,删除表A的数据,在表A上新建联合主键,将A_COPY表的数据通过忽略方式添加到表A,最后删除A_COPY表
具体SQL:
create table A_COPY select * from A;
truncate table A;
alter table A add primary key(column1,column2,column3);
insert ignore into A select * from A_copy;
drop table A_COPY;