Invalid default value for `xxxx`錯誤引起的原因之CURRENT_TIMESTAMP

引起錯誤的SQL語句

CREATE TABLE `nb_sxgl` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID,自增',
 `is_deleted` int(1) unsigned NOT NULL DEFAULT 0 COMMENT '是否刪除:0 未刪除,1 刪除',
 `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
 `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間',
 `sxbh` varchar(64) NOT NULL DEFAULT '' COMMENT '事項編號',
 `sxmc` varchar(64) NOT NULL DEFAULT '' COMMENT '事項名稱',
 `yjbm` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '一級部門',
 `ejbm` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '二級部門',
  PRIMARY KEY (`id`)
	) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='XX事項管理';

運行語句報錯截圖

運行報錯截圖
當時看到這個報錯,很是不能理解,因爲當時類似結構的SQL語句,我是在MySQL數據庫中運行成功過的。唯一的不同是不同的數據庫。

後來比對數據庫的版本,發現版本是不一致的。

得到結論:如果裝的是mysql 5.5的話,就會出現報錯。5.7以上的是不會報錯的。

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