关于Mysql timestamp的两属性CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP

 关于timestamp的两属性CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP,使用示例如下:

CREATE TABLE `upload_table` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
  `name` varchar(50) NOT NULL COMMENT '名',
  `comment` varchar(200) DEFAULT NULL COMMENT '备注',
  `s_id` bigint(20) DEFAULT NULL COMMENT 'ID',
  `owner` varchar(50) NOT NULL COMMENT 'owner',
  `all_count` int(11) NOT NULL DEFAULT '0' COMMENT '总条数',
  `insert_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `succ_count` int(11) DEFAULT '0' COMMENT '成功条数',
  `repeat_count` int(11) DEFAULT '0' COMMENT '重复条数',
  `fail_count` int(11) DEFAULT '0' COMMENT '失败条数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='XXXX’;
 

1、当要向数据库执行insert操作时,insert_time字段属性设为DEFAULT

CURRENT_TIMESTAMP,则在这个字段没有set值时插入当前系统时间

注意如果Insert时给insert_time赋了NULL值,则不会再插入当前时间 

2、当执行insert操作update操作是,字段update_time有DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP属性。

则字段update_time如果没有显示更新此字段赋有效值(即使update时,update_time=null也会被更新为当前时间)它的值也会跟着更新为当前UPDATE操作时的时间。

posted @ 2021-06-24 10:13  xuzhujack  阅读(735)  评论(0编辑  收藏  举报
;