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

对一个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;

 

posted on 2020-04-19 17:53  jerry1111  阅读(344)  评论(0编辑  收藏  举报

导航