mysql5.5 timestamp類型create_time和update_time更新時間

本想根據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 '修改時間',

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章