MySQL迁移至GreatSQL后,timestamp字段插入报错解析
背景描述
某业务系统进行国产化适配,将MySQL的数据迁移到 GreatSQL 后,执行 INSERT INTO ,update_time传参为空时报错,报错信息为:ERROR 1048 (23000): Column ‘update_time’ cannot be null ,而原来旧的MySQL环境中没有这个问题。
greatsql> INSERT INTO `t_interface`
(`user_id`, `department_id`, `update_time`, `is_deleted`) VALUES (9, 18, null, 0);
ERROR 1048 (23000): Column 'update_time' cannot be null
问题分析
1、在 GreatSQL 进行复现
CREATE TABLE `t_interface` (
`interfacer_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
`user_id` int(11) NOT NULL COMMENT '用户id(部门接口人)',
`department_id` int(11) NOT NULL COMMENT '部门id',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
`is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否删除(0未删除 1已删除)',
PRIMARY KEY (`interfacer_id`) USING BTREE,
KEY `user_id` (`user_id`) USING BTREE,
KEY `department_id` (`department_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1162 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
INSERT INTO `t_interface`
(`user_id`, `department_id`, `update_time`

最低0.47元/天 解锁文章
1400

被折叠的 条评论
为什么被折叠?



