Используйте 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.

Другие вопросы по тегам