mysql中要设置一个和"timestamp"一样的时间,但默认值为null,应该用什么样的类型保持与“ timestamp”自动创建的时间格式一致?

来源:3-1 开发环境搭建

HiPing

2019-04-28

写回答

3回答

廖师兄

2019-04-29

我这里是可以的,在mysql 5.7.23上执行,执行完毕后,表结构变成

CREATE TABLE `product_info` (
  `list_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '上架时间',
  `delist_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '下架时间',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表';
0
0

HiPing

提问者

2019-04-28

CREATE TABLE `product_info` ( 

    `list_time` TIMESTAMP COMMENT '上架时间', 

    `delist_time` TIMESTAMP COMMENT '下架时间', 

    `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

     `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP COMMENT '修改时间'

 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表';


0
0

廖师兄

2019-04-28

我没有看懂你的问题

0
1
HiPing
CREATE TABLE `product_info` ( `list_time` TIMESTAMP COMMENT '上架时间', `delist_time` TIMESTAMP COMMENT '下架时间', `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP COMMENT '修改时间' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表'; 如此创建表,如果执行的话,报错“Invalid default value for 'delist_time'”,上下架没有设定默认值,但我想让上下架的时间默认值为空,但格式又保持和创建时间(修改时间)的格式一样,也是"yyyy-MM-dd HH:mm:ss"的格式,我应该用什么样的类型去设置上下架的时间,并保持默认为空,并且时间格式也一致?
2019-04-28
共1条回复

Spring Boot双版本(1.5/2.1) 打造企业级微信点餐系统

从0到1开发中小型企业级Java应用,并学会迭代重构技巧

6410 学习 · 5247 问题

查看课程