本想根據timestamp特性實現自動更新和創建
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL COMMENT '用戶名',
`password` varchar(255) DEFAULT NULL COMMENT '密碼',
`nickname` varchar(255) DEFAULT NULL COMMENT '暱稱',
`role_id` int(11) DEFAULT '0' COMMENT '角色ID',
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間',
`delete_status` varchar(1) DEFAULT '1' COMMENT '是否有效 1有效 2無效',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10008 DEFAULT CHARSET=utf8 COMMENT='運營後臺用戶表';
無奈5.5好像不支持,會報錯,說白了就只支持一個字段可以current_timestamp這麼着
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause
看了 Mysql5.5中實現createTime和updateTime自動更新
就是折中一種方案,讓更新字段支持自動更新,插入數據時,針對創建時間字段:在sql裏now() 或者在代碼裏new date()
更改後的sql,把默認值給個空
`create_time` timestamp NULL DEFAULT NULL COMMENT '創建時間',
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間',