TIMESTAMP在MySQL5.5中的行為:
1.第一個未設置默認值的TIMESTAMP NOT NULL字段隱式默認值:CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
2.后面未設置默認值的TIMESTAMP NOT NULL字段隱式默認值:0000-00-00 00:00:00
3.不支持多個CURRENT_TIMESTAMP 默認值
5.5的建表語句類似這樣:
CREATE TABLE `audit_log` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `ent_id` int(10) unsigned NOT NULL DEFAULT '0', `rule_id` int(10) unsigned NOT NULL DEFAULT '0', `rules_detail` varchar(2048) NOT NULL DEFAULT '' COMMENT '規則詳情', `sender_email` varchar(512) NOT NULL DEFAULT '' COMMENT '發件人被審核郵箱', `receiver_email` varchar(512) NOT NULL DEFAULT '' COMMENT '收件人郵箱', `subject` varchar(512) NOT NULL DEFAULT '' COMMENT '主題', `createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `start_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `end_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `status` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '當前狀態(1 通過,2 拒絕,3 超時拒絕,4 超時通過)', `reviewer_leader` varchar(512) NOT NULL DEFAULT '' COMMENT '審核人', PRIMARY KEY (`id`), KEY `idx_ent_id` (`ent_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='審核日志表'
TIMESTAMP在MySQL5.6中的行為:
支持多個CURRENT_TIMESTAMP 默認值,但是不支持設置默認值為0000-00-00 00:00:00
5.6的可以這樣:
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`end_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,