为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:4.0.6
- 【问题描述】:
官方文档对于此参数的描述
explicit_defaults_for_timestamp:
TiDB 默认:ON,且仅支持设置该值为 ON。
MySQL 5.7 默认:OFF。
MySQL 8.0 默认:ON。
–问题重现
CREATE TABLE test
(
id
int NOT NULL,
modify_time
timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘创建时间’
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
insert into test(id,modify_time) values (1,null);
Error Code: 1048. Column ‘modify_time’ cannot be null
现在有生产环境mysql5.7.20要迁移到tidb,但是原代码好多对于timestamp为null的部分,在不修改代码的情况下,怎么能避免此类错误?