修改大表字段属性报主键冲突

对一个200多万记录的大表执行alter操作,结果报了Duplicate entry XXX  for  key 'PRIMAY'

这是由于MYSQL的online DDL 特性导致的。 参考 https://blog.csdn.net/finalkof1983/article/details/88355314

可以使用ALGORITHM=COPY------ copy表示放弃online DDL的方式,执行DDL的时候会创建临时表

LOCK=SHARED - ----对操作表加上S锁,不阻塞读操作。阻塞写操作。

alter table XXX  add COLUMN aaa , ALGORITHM=COPY,LOCK=SHARED;

原文地址:https://www.cnblogs.com/takemetoyourheart/p/12732575.html