欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql ERROR 1067: Invalid default value for字段問題

 更新時間:2023年05月29日 10:46:52   作者:jerry-89  
這篇文章主要介紹了Mysql ERROR 1067: Invalid default value for字段問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Mysql ERROR 1067: Invalid default value for字段

問題

//今天把一個數據庫的sql文件導入到另一個數據庫出現以下異常:

Mysql ERROR 1067: Invalid default value for 字段

//原因是因為之前導出數據里面有張表的一個日期字段默認值為0000-00-00,導致現在的錯誤。根本原因是  SQL_MODE  設置值的問題

查詢數據庫有什么引擎:

select table_name,`engine` from information_schema.tables where table_schema = 'database_name';

查詢表引擎(查看MYISAM)

SELECT CONCAT(table_name,'? ', engine)?? FROM information_schema.tables WHERE table_schema="bpm" AND ENGINE="MyISAM"; ?

生成修改sql(把MYISAM改成INNODB)

select CONCAT('alter table ',table_name,' engine=InnoDB;') FROM information_schema.tables WHERE table_schema="bpm" AND ENGINE="MyISAM";
alter table taai_client_dump_date engine=InnoDB;

報此錯:ERROR 1067 (42000): Invalid default value for 'cur_date'

永久解決:

??? vi /etc/my.cnf??? //添加以下配置
?sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

臨時解決:

set @@sql_mode ='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

MYSQL的sql_mode:

ONLY_FULL_GROUP_BY:

對于GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現,那么將認為這個SQL是不合法的,因為列不在GROUP BY從句中

STRICT_TRANS_TABLES:

在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做任何限制

NO_ZERO_IN_DATE:

在嚴格模式,不接受月或日部分為0的日期。

如果使用IGNORE選項,我們?yōu)轭愃频娜掌诓迦?#39;0000-00-00'。

在非嚴格模式,可以接受該日期,但會生成警告。

NO_ZERO_DATE:

在嚴格模式,不要將 '0000-00-00'做為合法日期。

你仍然可以用IGNORE選項插入零日期。

在非嚴格模式,可以接受該日期,但會生成警告

ERROR_FOR_DIVISION_BY_ZERO:

在嚴格模式,在INSERT或UPDATE過程中,如果被零除(或MOD(X,0)),則產生錯誤(否則為警告)。

如果未給出該模式,被零除時MySQL返回NULL。

如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作結果為NULL。

NO_AUTO_CREATE_USER

防止GRANT自動創(chuàng)建新用戶,除非還指定了密碼。

NO_ENGINE_SUBSTITUTION:

如果需要的存儲引擎被禁用或未編譯,那么拋出錯誤。不設置此值時,用默認的存儲引擎替代,并拋出一個異常

導入SQL時出現 Invalid default value for ‘XXX‘ 報錯

問題如上圖,在進行建表時,報錯 Invalid default value for 'XXX'

原因

MySQL的版本不同,5.6及其以下版本不支持

因為給了時間字段的列默認值一個 CURRENT_TIMESTAMP 默認值,而這個默認值在低版本的 MySQL 中是不支持的,因此就出現了圖中的這個報錯

`reg_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注冊時間',

解決方案

一:重裝 MySQL 數據庫,版本選擇 5.7 或者 5.7 以上版本

二:將

`reg_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注冊時間',

改為

`reg_time` datetime DEFAULT  NULL COMMENT '注冊時間',

即可

附圖:

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MySQL 覆蓋索引的優(yōu)點

    MySQL 覆蓋索引的優(yōu)點

    當索引包含了所有查詢的數據時,這個索引就稱之為覆蓋索引。覆蓋索引能夠成為一個非常有力的工具并且能夠顯著改善性能,本文將具體講述覆蓋索引的優(yōu)點
    2021-05-05
  • MySQL數據庫中如何查詢近一年的數據

    MySQL數據庫中如何查詢近一年的數據

    最近碰到一個需求是統計某張表的數據,統計時間維度為近一年,下面這篇文章主要給大家介紹了關于MySQL數據庫中如何查詢近一年的數據的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • mysql數據庫添加用戶及分配權限具體實現

    mysql數據庫添加用戶及分配權限具體實現

    這篇文章主要介紹了mysql數據庫添加用戶及分配權限的方法,需要的朋友可以參考下
    2014-02-02
  • MySQL語句之MD5()的使用方式

    MySQL語句之MD5()的使用方式

    這篇文章主要介紹了MySQL語句之MD5()的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • 關于MySQL中savepoint語句使用時所出現的錯誤

    關于MySQL中savepoint語句使用時所出現的錯誤

    這篇文章主要介紹了關于MySQL中savepoint語句使用時所出現的錯誤,字符串出現e時所產生的問題也被作為MySQL的bug進行過提交,需要的朋友可以參考下
    2015-05-05
  • Mysql更新varchar存儲Json數據的操作方法

    Mysql更新varchar存儲Json數據的操作方法

    這篇文章主要介紹了Mysql更新varchar存儲Json數據的操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-12-12
  • MySQL中的GROUP_CONCAT()函數詳解與實戰(zhàn)應用小結(示例詳解)

    MySQL中的GROUP_CONCAT()函數詳解與實戰(zhàn)應用小結(示例詳解)

    本文介紹了MySQL中的GROUP_CONCAT()函數,詳細解釋了其基本語法、應用示例以及ORDERBY和SEPARATOR參數的使用方法,此外,還提到了該函數的性能限制和注意事項,感興趣的朋友一起看看吧
    2025-02-02
  • mysql 5.7.9 免安裝版配置方法圖文教程

    mysql 5.7.9 免安裝版配置方法圖文教程

    這篇文章主要為大家分享了mysql 5.7.9 免安裝版配置方法圖文教程,感興趣的小伙伴們可以參考一下
    2016-08-08
  • MySQL數據庫簡介與基本操作

    MySQL數據庫簡介與基本操作

    這篇文章介紹了MySQL數據庫與其基本操作,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • MySQL開啟記錄執(zhí)行過的SQL語句方法

    MySQL開啟記錄執(zhí)行過的SQL語句方法

    這篇文章主要介紹了MySQL開啟記錄執(zhí)行過的SQL語句方法,配置的方法很簡單,本文直接給出配置示例,需要的朋友可以參考下
    2015-07-07

最新評論