1

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

谢谢

4

1 回答 1

2

pt-online-schema change 运行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 列

于 2019-10-16T19:21:53.117 回答