Inman
(Inman)
1
- mysql 的字段 after_sale_reason 开始是null的,然后也包含null的值,通过执行下面的sql, alter table column 成 notnull, 其中的 null 会自动变为默认值。mysql 不产生binlog
- 该ddl语句在tidb 执行报错
ALTER TABLE offline_after_sale_goods
MODIFY COLUMN after_sale_reason
VARCHAR(512) NOT NULL DEFAULT ‘’ COMMENT ‘售后原因’
临时的解决方案,我手动把tidb的这些null的默认值,改为了’’, 然后执行该sql,成功。
帮忙看下这个是否是bug,后续能否支持?
小王同学
2
推荐升级下版本,在 3.0.1 的测试环境执行是没问题了
Inman
(Inman)
3
我的版本是3.0.2
重现步骤
CREATE TABLE test_table
(
id
INT NOT NULL,
text
VARCHAR(45) NULL,
PRIMARY KEY (id
));
insert into test_table values(1, null);
insert into test_table values(2, “adf”);
insert into test_table values(3, null);
ALTER TABLE test_table
CHANGE COLUMN text
text
VARCHAR(45) NOT NULL default ‘’;
然后ERROR:
ERROR 1138 (22004): Invalid use of NULL value
下面是版本信息
Inman
(Inman)
5
好的,明白啦,谢谢。我们这边dba在操作的时候,把这些warning忽略了。
system
(system)
关闭
7
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。