--source include/have_innodb.inc create table t (a int NOT NULL) engine=innodb row_format= compressed; --error ER_ALTER_OPERATION_NOT_SUPPORTED alter table t modify a int NULL, algorithm=instant; drop table t; create table t (a int NOT NULL) engine=innodb row_format= dynamic; --error ER_ALTER_OPERATION_NOT_SUPPORTED alter table t modify a int NULL, algorithm=instant; drop table t; create table t (a int NOT NULL) engine=innodb row_format= compact; --error ER_ALTER_OPERATION_NOT_SUPPORTED alter table t modify a int NULL, algorithm=instant; drop table t; create table t ( id int primary key, a int NOT NULL default 0, b int NOT NULL default 0, c int NOT NULL default 0, index idx (a,b,c) ) engine=innodb row_format=redundant; --error ER_BAD_NULL_ERROR insert into t (id, a) values (0, NULL); --error ER_BAD_NULL_ERROR insert into t (id, b) values (0, NULL); --error ER_BAD_NULL_ERROR insert into t (id, c) values (0, NULL); insert into t values (1,1,1,1); set @id = (select table_id from information_schema.innodb_sys_tables where name = 'test/t'); --replace_column 1 TABLE_ID select * from information_schema.innodb_sys_columns where table_id=@id; alter table t modify a int NULL, algorithm=instant; insert into t values (2, NULL, 2, 2); alter table t modify b int NULL, algorithm=nocopy; insert into t values (3, NULL, NULL, 3); alter table t modify c int NULL, algorithm=inplace; insert into t values (4, NULL, NULL, NULL); --replace_column 1 TABLE_ID select * from information_schema.innodb_sys_columns where table_id=@id; select * from t; check table t; drop table t;