国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - 詳解Mysql數據庫date, datetime類型設置0000-00-00默認值(default)報錯問題

詳解Mysql數據庫date, datetime類型設置0000-00-00默認值(default)報錯問題

2019-06-10 19:16chentging服務器之家 Mysql

這篇文章主要介紹了詳解Mysql數據庫date, datetime類型設置0000-00-00默認值(default)報錯問題,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

現象:MySQL5.7版本之后,date, datetime類型設置默認值"0000-00-00",出現異常:Invalid default value for 'time'

原因:在命令行窗口查看當前的sql_mode配置:

select @@sql_mode;

結果如下:

ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE,  
ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION 

其中NO_ZERO_IN_DATE, NO_ZERO_DATE兩個選項禁止了0000這樣的日期和時間。因此在mysql的配置文件中,重新設置sql_mode,去掉這兩項就可以了。

解決辦法

1.windows系統下:

使用 SET [SESSION|GLOBAL] sql_mode='modes'

注意:SESSION(默認選項):表示當前回話中生效;GLOBAL(需重啟):表示全局生效

也可以修改my.ini配置文件

***
演示: 
    SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES, 
    ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

1.Linux系統下:

修改my.cnf文件,在[mysqld]中添加

 

復制代碼代碼如下:
sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

修改完成一定重啟MySQL

2.Mac系統下:

在MacOS中默認是沒有my.cnf 文件,如果需要對MySql 進行定制,拷貝/usr/local/mysql/support-files/目錄 中任意一個.cnf 文件。筆者拷貝的是my-default.cnf,將它放到其他目錄,按照上面修改完畢之后,更名為my.cnf,然后拷貝到/etc目錄再重啟下mysql就大功告成了。

sql_mode模式問題拓展

sql_mode 常用值說明

1.SQL語法支持類 

  • ONLY_FULL_GROUP_BY

對于GROUP BY聚合操作,如果在SELECT中的列、HAVING或者ORDER BY子句的列,沒有在GROUP BY中出現,那么這個SQL是不合法的。是可以理解的,因為不在 group by 的列查出來展示會有矛盾。 在5.7中默認啟用,所以在實施5.6升級到5.7的過程需要注意:

  • ANSI_QUOTES

啟用 ANSI_QUOTES 后,不能用雙引號來引用字符串,因為它被解釋為識別符,作用與 ` 一樣。

設置它以后,update t set f1="" ...,會報 Unknown column ‘' in ‘field list 這樣的語法錯誤。

  • PIPES_AS_CONCAT

將 || 視為字符串的連接操作符而非運算符,這和Oracle數據庫是一樣的,也和字符串的拼接函數 CONCAT() 相類似

  • NO_TABLE_OPTIONS

使用 SHOW CREATE TABLE 時不會輸出mysql特有的語法部分,如 ENGINE ,這個在使用 mysqldump 跨DB種類遷移的時候需要考慮

  • NO_AUTO_CREATE_USER

字面意思不自動創建用戶。在給MySQL用戶授權時,我們習慣使用 GRANT ... ON ... TO dbuser順道一起創建用戶。設置該選項后就與oracle操作類似,授權之前必須先建立用戶。5.7.7開始也默認了。

2.數據檢查類

  • NO_ZERO_DATE

認為日期 ‘0000-00-00' 非法,與是否設置后面的嚴格模式有關。 1.如果設置了嚴格模式,則 NO_ZERO_DATE 自然滿足。但如果是 INSERT IGNORE 或 UPDATE IGNORE,'0000-00-00'依然允許且只顯示warning 2.如果在非嚴格模式下,設置了NO_ZERO_DATE,效果與上面一樣,'0000-00-00'允許但顯示warning;如果沒有設置NO_ZERO_DATE,no warning,當做完全合法的值。3.NO_ZERO_IN_DATE情況與上面類似,不同的是控制日期和天,是否可為 0 ,即 2010-01-00 是否合法。

  • NO_ENGINE_SUBSTITUTION

使用 ALTER TABLE或CREATE TABLE 指定 ENGINE 時, 需要的存儲引擎被禁用或未編譯,該如何處理。啟用NO_ENGINE_SUBSTITUTION時,那么直接拋出錯誤;不設置此值時,CREATE用默認的存儲引擎替代,ATLER不進行更改,并拋出一個 warning。

  • STRICT_TRANS_TABLES

設置它,表示啟用嚴格模式。

 注意 STRICT_TRANS_TABLES 不是幾種策略的組合,單獨指 INSERT、UPDATE出現少值或無效值該如何處理: 把 ‘' 傳給int,嚴格模式下非法,若啟用非嚴格模式則變成0,產生一個warning
Out Of Range,變成插入最大邊界值

A value is missing when a new row to be inserted does not contain a value for a non-NULL column that has no explicit DEFAULT clause in its definition

mysql5.0以上版本支持三種sql_mode模式: set @@sql_mode=xxx模式名;

我們常設置的 sql_mode 是 ANSI、STRICT_TRANS_TABLES、TRADITIONAL,其中ANSI和TRADITIONAL是上面的幾種組合。

3.ANSI模式:寬松模式,對插入數據進行校驗,如果不符合定義類型或者長度,對數據類型調整或截斷保存,報warning警告.

4.TRADITIONAL模式:嚴格模式,當向MySQL數據庫插入數據時,進行數據的嚴格校驗,保證錯誤數據不能插入,報error錯誤.用于事務時,會進行事務的回滾.

3.STRICT_TRANS_TABLES模式:嚴格模式,進行數據的嚴格校驗,錯誤數據不能插入,報error錯誤。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久手机免费视频 | 亚洲视频区 | 午夜免费av | 在线一区 | 日韩精品1区 | 日韩在线视频观看 | 日韩中文在线视频 | 亚洲国产精品久久久久 | 欧美a网站 | 久久美女视频 | 日韩在线观看中文字幕 | 免费毛片网站 | 欧美久久免费 | 日韩无在线 | 亚洲欧洲在线观看 | 在线a视频网站 | 黄色片子免费观看 | 色在线影院| 日本不卡在线观看 | 韩国三级午夜理伦三级三 | 国产精品午夜在线观看 | 亚洲 欧美 日韩 在线 | 国产免费一区二区三区 | 99re在线| 久久精品青青大伊人av | 亚洲美女在线视频 | 国产精品免费一区 | 亚洲精品影院在线 | 欧美福利在线观看 | 午夜社区 | 亚洲国产精品久久久久久6q | 91久久国产精品 | 国产区在线 | 亚洲精品毛片一区二区 | 欧美久久久网站 | 日韩福利在线 | 日本一区不卡 | 四季久久免费一区二区三区四区 | 亚洲国产精品久久 | 成人a级片在线观看 | 亚洲天堂av网 |