mysql中,同一个表多个timesatmp字段设置default的时候,经常会报错。

一个表只能有一个设置default的字段。

但是有时只有一个字段设置default也会报错。

会报:Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

但是检查代码,发现只有一个timestamp设置了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 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='秒杀库存表';

原因是当你给一个timestamp设置为on updatecurrent_timestamp的时候,其他的timestamp字段需要显式设定default值

但是如果你有两个timestamp字段,但是只把第一个设定为current_timestamp而第二个没有设定默认值,mysql也能成功建表,但是反过来就不行...

改成

CREATE TABLE seckill(
`seckill_id` BIGINT NOT NUll AUTO_INCREMENT COMMENT '商品库存ID',
`name` VARCHAR(120) NOT NULL COMMENT '商品名称',
`number` int NOT NULL COMMENT '库存数量',
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `start_time` TIMESTAMP  NOT NULL COMMENT '秒杀开始时间',
`end_time` TIMESTAMP NOT NULL 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='秒杀库存表';

第一个timestamp设置了default才可以,后面的设置default就不行。而且只能有一列设置default。


最新文章

  1. CORBA GIOP消息格式学习
  2. android中的数据库操作
  3. c#判断网络连接状态示例代码
  4. 关于this 的一个问题
  5. yum安装于卸载软件常见命令
  6. JavaScript 操作符 变量
  7. Kubernetes Ingress Controller的使用及高可用落地
  8. JVM之GC算法、垃圾收集算法——标记-清除算法、复制算法、标记-整理算法、分代收集算法
  9. RoIPooling
  10. [转] 【Monogdb】MongoDB的日志系统
  11. 012-docker-安装-fabric:1.4
  12. 如何恢复IIS出厂默认设置
  13. C#编程(十八)----------C#中的结构
  14. 让服务器可以下载apk和ipa文件
  15. ubuntu 安装ftp nginx tomcat,mysql
  16. 【2018北京集训十二】 coin 矩阵快速幂
  17. Rookey.Frame之实体FluentValidation验证
  18. python字符串转换成变量的几种方法
  19. Scss开发临时学习过程||webpack、npm、gulp配置
  20. [转]iis 重新安装后 重新注册asp.net

热门文章

  1. 孤荷凌寒自学python第六天 列表的嵌套与列表的主要方法
  2. golang中从一个日期开始往后增加一段时间
  3. HDU 4031 Attack (线段树)
  4. lua中如何识别C语言中的struct
  5. 使用IDEA新建Maven项目没有完整的项目结构(src文件夹等等)
  6. 公共文件js加载
  7. bzoj2441 [中山市选2011]小W的问题(debug中)
  8. Linux命令之time
  9. HCNA--tcp/ip基础
  10. YV12 NV12区别