使用pt-online-schema-change添加新列并填充它

时间:2019-10-16 19:14:17

标签: mysql pt-online-schema-change

我需要在现有的MySQL表中添加一个新列,并使用从另一列中计算出的值进行填充。 有没有办法使用pt-online-schema-change来做到这一点?

谢谢

1 个答案:

答案 0 :(得分:2)

pt-online-schema更改运行ALTER TABLE条语句,而不是UPDATE条语句。如果需要填充列,则有两个选择:

  • 添加具有pt-online-schema更改的列。然后,完成此操作后,使用UPDATE将数据填充到该列中。建议分批执行UPDATE。例如,我一次要在1000行上运行它,然后重复执行直到UPDATE报告您更改了0行。

    UPDATE mytable SET mynewcolumn = <expr> 
    WHERE mynewcolumn IS NULL LIMIT 1000;
    
  • 如果使用MySQL 5.7或更高版本,则将该列定义为GENERATED column