MYSQL 语句 DEFAULT CURRENT_TIMESTAMP这句话出错怎么回事?
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='秒杀库存表'
如果你装的是mysql 5.5的话,就会出现报错。sql是没错的
你可以把这句语句放在前面,类似这样
create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
start_time timestamp NOT NULL COMMENT '秒杀开始时间',
end_time timestamp NOT NULL COMMENT '秒杀结束时间',
就不会报错了
解决方法是什么?
百度了下,是数据库工具问题,sql语句是没问题的,但是Navicat默认创建starttime的时候使用了默认DEFAULT CURRENT_TIMESTAMP,导致出错
这句sql没有问题