Используйте pt-online-schema-change, чтобы добавить новый столбец и заполнить его
Мне нужно добавить новый столбец в существующую таблицу MySQL и заполнить значением, рассчитанным из другого столбца. Есть ли способ сделать это с помощьюpt-online-schema-change
?
Спасибо
1 ответ
Решение
Изменение схемы pt-online выполняется ALTER TABLE
заявления, а не UPDATE
заявления. Если вам нужно заполнить столбец, у вас есть два варианта:
Добавьте столбец с изменением схемы pt-online. Затем после этого используйте UPDATE, чтобы заполнить столбец данными. Рекомендуется выполнять ОБНОВЛЕНИЕ партиями. Например, я бы запустил его для 1000 строк за раз и повторял бы это до тех пор, пока ОБНОВЛЕНИЕ не сообщит, что вы изменили 0 строк.
UPDATE mytable SET mynewcolumn = <expr> WHERE mynewcolumn IS NULL LIMIT 1000;
Если вы используете MySQL 5.7 или новее, определите столбец как GENERATED.