set @sql_mode_saved = @@session.sql_mode; show variables like 'sql_mode'; Variable_name Value sql_mode NO_ENGINE_SUBSTITUTION set sql_mode = ''; create table t1(id int, c1 text)engine=xengine charset=utf8mb4, collate=utf8mb4_0900_ai_ci; insert into t1 values(1, '1111'),(2, NULL); alter table t1 add primary key(c1(4)); alter table t1 add index(id); select * from t1; id c1 2 1 1111 delete from t1 where id=2; select * from t1; id c1 1 1111 drop table t1; create table t1(id int, c1 text)engine=xengine charset=utf8mb4, collate=utf8mb4_general_ci; insert into t1 values(1, '1111'),(2, NULL); alter table t1 add primary key(c1(4)); alter table t1 add index(id); select * from t1; id c1 2 1 1111 delete from t1 where id=2; select * from t1; id c1 1 1111 drop table t1; create table t1(id int, c1 text)engine=xengine charset=utf8, collate=utf8_general_ci; insert into t1 values(1, '1111'),(2, NULL); alter table t1 add primary key(c1(4)); alter table t1 add index(id); select * from t1; id c1 2 1 1111 delete from t1 where id=2; select * from t1; id c1 1 1111 drop table t1; create table t1(id int, c1 text)engine=xengine charset=gbk, collate=gbk_chinese_ci; insert into t1 values(1, '1111'),(2, NULL); alter table t1 add primary key(c1(4)); alter table t1 add index(id); select * from t1; id c1 2 1 1111 delete from t1 where id=2; select * from t1; id c1 1 1111 drop table t1; create table t1(id int, c1 blob)engine=xengine charset=utf8mb4, collate=utf8mb4_0900_ai_ci; insert into t1 values(1, '1111'),(2, NULL); alter table t1 add primary key(c1(4)); alter table t1 add index(id); select * from t1; id c1 2 1 1111 delete from t1 where id=2; select * from t1; id c1 1 1111 drop table t1; create table t1(id int, c1 blob)engine=xengine charset=utf8mb4, collate=utf8mb4_general_ci; insert into t1 values(1, '1111'),(2, NULL); alter table t1 add primary key(c1(4)); alter table t1 add index(id); select * from t1; id c1 2 1 1111 delete from t1 where id=2; select * from t1; id c1 1 1111 drop table t1; create table t1(id int, c1 blob)engine=xengine charset=utf8, collate=utf8_general_ci; insert into t1 values(1, '1111'),(2, NULL); alter table t1 add primary key(c1(4)); alter table t1 add index(id); select * from t1; id c1 2 1 1111 delete from t1 where id=2; select * from t1; id c1 1 1111 drop table t1; create table t1(id int, c1 blob)engine=xengine charset=gbk, collate=gbk_chinese_ci; insert into t1 values(1, '1111'),(2, NULL); alter table t1 add primary key(c1(4)); alter table t1 add index(id); select * from t1; id c1 2 1 1111 delete from t1 where id=2; select * from t1; id c1 1 1111 drop table t1; set sql_mode = @sql_mode_saved;