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

问题描述 投票:0回答:1

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

谢谢

mysql pt-online-schema-change
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.