1. Invalid default value for 'end_time'问题
1.1执行如下
CREATE TABLE seckill(
`seckill_id` bigint not null AUTO_INCREMENT COMMENT '商品库存id',
`name` varchar(120) not null comment '商品名称',
`number` int not NULL comment '库存数量',
`start_time` TIMESTAMP not NULL comment '秒杀开始时间',
`end_time` TIMESTAMP not NULL comment '秒杀开始时间',
`create_time` TIMESTAMP not null DEFAULT current_timestamp comment '创建时间',
PRIMARY key (seckill_id),
key idx_start_time (start_time),
key idx_end_time(end_time),
key idx_create_time(create_time)
)ENGINE=InnoDB auto_increment=1000 DEFAULT CHARSET=utf8 COMMENT='秒杀库存表';
执行时发现报invalid default value for 'end_time‘。
1.2解决方法
首先用下面的命令看下sql_mode
show variables like 'sql_mode';
发现查询的结果如下:
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
如果结果中含有NO_ZERO_IN_DATE, NO_ZERO_DATE则执行下面的命令:
set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
网友评论