关于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操作时的时间。