Percona изменить таблицу, чтобы разрешить нули

Как изменить таблицу, чтобы разрешить нулевые значения с помощью Percona.

pt-online-schema-change --modfiy mycolumn default null d=database, t=table

Я вижу --alter, но ничего, чтобы изменить существующий столбец.

1 ответ

Решение

Прежде всего, вы не ДОЛЖНЫ использовать pt-online-schema-change для достижения этой цели, как вы можете сделать это в нативном SQL (хотя у вас может быть причина спросить, как это сделать с pt-online-schema-change)

Для этой таблицы:

DROP DATABASE IF EXISTS test;
CREATE DATABASE test;
USE test;

CREATE TABLE t1 (
    id   INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(40)
) ENGINE=InnoDB;

Вы можете использовать этот SQL:

ALTER TABLE `test`.`t1` CHANGE COLUMN name name VARCHAR(40) NULL;

Однако, если у вас есть веская причина использовать pt-online-schema-change, например, если таблица очень большая, то это будет синтаксис:

pt-online-schema-change h=127.0.0.1,P=3306,u=user,p=password,D=test,t=t1 --alter "CHANGE COLUMN name name VARCHAR(40) NULL" --execute

Вот ссылка на документацию инструмента https://www.percona.com/doc/percona-toolkit/LATEST/pt-online-schema-change.html

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