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