導入 SQL 時出現 Invalid default value for 'create_time' 報錯解決方法

問題描述

十三在 GitHub 倉庫中開源了一個 Spring Boot 技術棧開發的 My-Blog 項目:git

由於功能比較多,數據的存儲就選擇了 MySQL 數據庫,該項目的表結構也放到了倉庫中,方便你們運行和使用這個開源博客項目,期間一直有人提到題目中的這個問題,在導入 SQL 語句到 MySQL 數據庫中的時候會報以下錯誤: Invalid default value for 'create_time' ,錯誤截圖以下:github

因爲不止一個朋友在羣裏或者倉庫裏給我提這個問題,所以今天就整理一下解決方案。數據庫

方案一

重裝 MySQL 數據庫,版本選擇 5.7 或者 5.7 以上版本,這個方案有些粗暴,不喜歡粗暴的朋友能夠繼續往下看。3d

方案二

這個錯誤的主要緣由,是由於給了時間字段的列默認值一個 CURRENT_TIMESTAMP 默認值,而這個默認值在低版本的 MySQL 中是不支持的,所以就出現了題目中的這個報錯,因此呢,把每一個時間字段的默認值修改一下便可,好比:code

DROP TABLE IF EXISTS `tb_config`;

CREATE TABLE `tb_config` (
  `config_name` varchar(100) NOT NULL DEFAULT '' COMMENT '配置項的名稱',
  `config_value` varchar(200) NOT NULL DEFAULT '' COMMENT '配置項的值',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '建立時間',
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改時間',
  PRIMARY KEY (`config_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

改成blog

DROP TABLE IF EXISTS `tb_config`;

CREATE TABLE `tb_config` (
  `config_name` varchar(100) NOT NULL DEFAULT '' COMMENT '配置項的名稱',
  `config_value` varchar(200) NOT NULL DEFAULT '' COMMENT '配置項的值',
  `create_time` datetime DEFAULT NULL COMMENT '建立時間',
  `update_time` datetime DEFAULT NULL COMMENT '修改時間',
  PRIMARY KEY (`config_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

就齊活了。開發

固然,也有錯誤示範,好比我讓別人改默認值,有個小老弟就改爲了以下這個樣子:get

但願你們不要犯一樣的錯誤。博客

方案三

以上兩種方案你們應該都看的懂,爲了防止某些小老弟太秀,SQL 語句都不會改,又有了第三個方案,表結構開源了,字段你們應該也都清楚,若是不會執行 SQL 語句,那你就本身建立表,把字段一個個的建立了,這種方式也是能夠滴。it

一個一個的把字段名稱和類型設置進去就能夠了。

總結

好的,此次的問題答疑就到此結束啦,若是寫成這樣仍是沒解決你的問題,我建議你換一個項目學學,我真的太難了。

My-Blog 的 GitHub 倉庫地址是 https://github.com/ZHENFENG13/My-Blog,Gitee 地址是 https://gitee.com/zhenfeng13/My-Blog喜歡的朋友能夠關注一下。

相關文章
相關標籤/搜索