为了账号安全,请及时绑定邮箱和手机立即绑定

我创建第一个表的时候说时间戳只能有一个,这是什么问题?

http://img1.sycdn.imooc.com//587f40330001ceb706770442.jpg


why这是什么问题


正在回答

5 回答

你的mysql版本是多少的 5.5???,http://www.jb51.net/article/50878.htm 这个里面解释比较清楚。

0 回复 有任何疑惑可以回复我~
#1

板砖在手天下我有 提问者

用的5.5 我看一下 我解决的方案是 把创建时间放到秒杀开启时间的前面就不报错了
2017-03-08 回复 有任何疑惑可以回复我~
#2

板砖在手天下我有 提问者

非常感谢!这个解释很好
2017-03-08 回复 有任何疑惑可以回复我~

为啥楼主把创建时间放到秒杀开启时间的前面就不报错了?

0 回复 有任何疑惑可以回复我~

我都加上default就可以了

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 DEFAULT CURRENT_TIMESTAMP COMMENT '秒杀开始时间',
 `end_time`   TIMESTAMP   NOT NULL DEFAULT CURRENT_TIMESTAMP 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='秒杀库存表';

1 回复 有任何疑惑可以回复我~
#1

板砖在手天下我有 提问者

我解决的方案是 把创建时间放到秒杀开启时间的前面就不报错了
2017-03-08 回复 有任何疑惑可以回复我~
#2

qq_幸福客_0 回复 板砖在手天下我有 提问者

感觉不科学啊,放到前面有啥不同吗?
2017-03-10 回复 有任何疑惑可以回复我~
#3

阳光洒在路上就不怕心碎f

我的放到前面也不行,都加上DEFAULT CURRENT_TIMESTAMP就可以了
2017-04-10 回复 有任何疑惑可以回复我~

老师 的为什么直接就过了  郁闷的  代码跟他一样

0 回复 有任何疑惑可以回复我~

你把创建时间的timestamp 去掉default current

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我创建第一个表的时候说时间戳只能有一个,这是什么问题?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信