Percona修改表以允许空值

时间:2018-02-02 16:53:53

标签: mysql percona pt-online-schema-change

如何使用percona修改表以允许空值。

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

我看到--alter但没有修改现有列。

1 个答案:

答案 0 :(得分:0)

首先,您不必使用pt-online-schema-change来实现这一点,因为您可以在本机SQL中执行此操作(尽管您可能有理由询问如何使用pt-online-有模式改变)

对于此表:

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

的链接