婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 關于MySQL的sql_mode合理設置詳解

關于MySQL的sql_mode合理設置詳解

熱門標簽:400電話可以免費申請嗎 福建外呼系統定制化 悟空科技電話機器人 美國反騷擾電話機器人 真人語音電話機器人 電銷卡外呼系統供應商 銅陵防封電銷卡 騰訊地圖標注提升 怎么在地圖標注位置生成圖片

MySQL的sql_mode合理設置

sql_mode是個很容易被忽視的變量,默認值是空值,在這種設置下是可以允許一些非法操作的,比如允許一些非法數據的插入。在生產環境必須將這個值設置為嚴格模式,所以開發、測試環境的數據庫也必須要設置,這樣在開發測試階段就可以發現問題.

1.sql model 常用來解決下面幾類問題:

  (1) 通過設置sql mode, 可以完成不同嚴格程度的數據校驗,有效地保障數據準備性。

  (2) 通過設置sql model 為寬松模式,來保證大多數sql符合標準的sql語法,這樣應用在不同數據庫之間進行遷移時,則不需要對業務sql 進行較大的修改。

  (3) 在不同數據庫之間進行數據遷移之前,通過設置SQL Mode 可以使MySQL 上的數據更方便地遷移到目標數據庫中。

2.sql_mode常用值如下:

    1. ONLY_FULL_GROUP_BY:

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

   2. NO_AUTO_VALUE_ON_ZERO:

      該值影響自增長列的插入。默認設置下,插入0或NULL代表生成下一個自增長值。如果用戶希望插入的值為0,而該列又是自增長的,那么這個選項就有用了。

   3. STRICT_TRANS_TABLES:嚴格模式

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

   4. NO_ZERO_IN_DATE:

      在嚴格模式下,不允許日期和月份為零。
 
   5. NO_ZERO_DATE:

      設置該值,mysql數據庫不允許插入零日期,插入零日期會拋出錯誤而不是警告。
 
   6. ERROR_FOR_DIVISION_BY_ZERO:

      在INSERT或UPDATE過程中,如果數據被零除,則產生錯誤而非警告。如果未給出該模式,那么數據被零除時MySQL返回NULL
 
   7. NO_AUTO_CREATE_USER:

      禁止GRANT創建密碼為空的用戶

   8. NO_ENGINE_SUBSTITUTION:

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

   9. PIPES_AS_CONCAT:

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

   10. ANSI_QUOTES:

      啟用ANSI_QUOTES后,不能用雙引號來引用字符串,因為它被解釋為識別符

    ORACLE的sql_mode設置等同:PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER.

    如果使用mysql,為了繼續保留大家使用oracle的習慣,可以對mysql的sql_mode設置如下:

    在my.cnf添加如下配置

    [mysqld]
    sql_mode='ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,
    ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,PIPES_AS_CONCAT,ANSI_QUOTES' 

3.寬松模式 和 嚴格模式 的注意事項:

【1】注意:MySQL5.6和MySQL5.7默認的sql_mode模式參數是不一樣的。
    5.6的mode是NO_ENGINE_SUBSTITUTION,其實表示的是一個空值,相當于沒有什么模式設置,可以理解為寬松模式。
    5.7的mode是STRICT_TRANS_TABLES,也就是嚴格模式。
   
【2】如果設置的是寬松模式,那么我們在插入數據的時候,即便是給了一個錯誤的數據,也可能會被接受,并且不報錯。
   
    例如:我在創建一個表時,該表中有一個字段為name,給name設置的字段類型時char(10),如果我在插入數據的時候,其中name這個字段對應的有一條數據的長度超過了10,例如'1234567890abc',超過了設定的字段長度10,那么不會報錯,并且取前十個字符存上,也就是說你這個數據被存為了'1234567890',而'abc'就沒有了,但是我們知道,我們給的這條數據是錯誤的,因為超過了字段長度,但是并沒有報錯,并且mysql自行處理并接受了,這就是寬松模式的效果。
   
    其實在開發、測試、生產等環境中,我們應該采用的是嚴格模式,出現這種錯誤,應該報錯才對,所以MySQL5.7版本就將sql_mode默認值改為了嚴格模式,并且我們即便是用的MySQL5.6,也應該自行將其改為嚴格模式。
   
    另外,MySQL等等的這些數據庫,都是想把關于數據的所有操作都自己包攬下來,包括數據的校驗,其實好多時候,我們應該在自己開發的項目程序級別將這些校驗給做了,雖然寫項目的時候麻煩了一些步驟,但是這樣做之后,我們在進行數據庫遷移或者在項目的遷移時,就會方便很多。mysql除了數據校驗之外,你慢慢的學習過程中會發現,它能夠做的事情還有很多很多,將你程序中做的好多事情都包攬了。
   
【3】改為嚴格模式后可能會存在的問題:

    若設置模式中包含了NO_ZERO_DATE,那么MySQL數據庫不允許插入零日期,插入零日期會拋出錯誤而不是警告。
    例如:表中含字段TIMESTAMP列(如果未聲明為NULL或顯示DEFAULT子句)將自動分配DEFAULT '0000-00-00 00:00:00'(零時間戳),也或者是本測試的表day列默認允許插入零日期 '0000-00-00' COMMENT '日期';這些顯然是不滿足sql_mode中的NO_ZERO_DATE而報錯。

4.模式設置和修改(以解決上述問題為例):


【方式一】:

    先執行select @@sql_mode,復制查詢出來的值并將其中的NO_ZERO_IN_DATE,NO_ZERO_DATE刪除,然后執行set sql_mode = '修改后的值'或者set session sql_mode='修改后的值';
   
    例如:set session sql_mode='STRICT_TRANS_TABLES';改為嚴格模式
   
    注意:此方法只在當前會話中生效,關閉當前會話就不生效了。


【方式二】:
    先執行select @@global.sql_mode,復制查詢出來的值并將其中的NO_ZERO_IN_DATE,NO_ZERO_DATE刪除,然后執行set global sql_mode = '修改后的值'。

    注意:此方法在當前服務中生效,重新MySQL服務后失效
 
【方法三】:
    1.在mysql的安裝目錄下,或my.cnf文件(windows系統是my.ini文件),新增 sql_mode =
    "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    添加my.ini如下:
   
    [mysqld]
   
    sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    2.然后重啟mysql。以管理員身份運行CMD,執行 net stop mysql ,再執行 net start mysql。

    注意:此方法永久生效.當然生產環境上是禁止重啟MySQL服務的,所以采用‘方式二+方式三'來解決線上的問題,那么即便是有一天真的重啟了MySQL服務,也會永久生效了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • MySQL sql_mode修改不生效的原因及解決
  • 詳解MySQL的sql_mode查詢與設置
  • MySQL中SQL Mode的查看與設置詳解
  • mysql中的sql_mode模式實例詳解
  • Django2 連接MySQL及model測試實例分析
  • MySQL關于sql_mode解析與設置講解
  • MySQL5.7中的sql_mode默認值帶來的坑及解決方法
  • MySql版本問題sql_mode=only_full_group_by的完美解決方案
  • 解決MySQL 5.7.9版本sql_mode=only_full_group_by問題
  • Mysql之SQL Mode用法詳解
  • mysql sql_mode="" 的作用說明
  • MySQL sql_mode的使用詳解

標簽:烏海 臨汾 湖北 武威 白銀 云浮 湖南 聊城

巨人網絡通訊聲明:本文標題《關于MySQL的sql_mode合理設置詳解》,本文關鍵詞  關于,MySQL,的,sql,mode,合理,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《關于MySQL的sql_mode合理設置詳解》相關的同類信息!
  • 本頁收集關于關于MySQL的sql_mode合理設置詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲欧美综合网| 久久久91精品国产一区二区精品| 综合欧美亚洲日本| 久久99精品久久久| 国产精品全国免费观看高清| 91精品国产免费| 51精品秘密在线观看| 欧美精品日日鲁夜夜添| 日韩免费高清视频| 91在线视频官网| 另类中文字幕网| 婷婷夜色潮精品综合在线| 奇米精品一区二区三区在线观看一| 2020国产精品自拍| 日韩美女视频在线| 337p粉嫩大胆色噜噜噜噜亚洲| 久久精品亚洲乱码伦伦中文 | 一区二区高清免费观看影视大全| 国产精品99久久久久| 欧美mv日韩mv国产| 日本伊人色综合网| 欧美xxxx老人做受| 成人自拍视频在线| 亚洲精品乱码久久久久久黑人| 99re8在线精品视频免费播放| 亚洲欧美日韩国产一区二区三区 | 欧美日本国产一区| 蜜臀av一区二区在线免费观看| 欧美videofree性高清杂交| 国产成人午夜电影网| 欧美国产激情一区二区三区蜜月| 国产成人免费视频网站| 中文字幕亚洲在| 日韩一级片网站| 福利一区在线观看| 亚洲激情自拍偷拍| 久久综合色婷婷| 在线观看视频91| 成人黄色软件下载| 亚洲mv在线观看| 国产精品福利一区二区| 欧美丝袜丝nylons| 国产精品一区二区三区网站| 亚洲 欧美综合在线网络| 亚洲图片激情小说| 中文字幕乱码亚洲精品一区| 欧美精品一区二区三区在线播放 | 综合久久综合久久| 欧美一区二区三区色| av中文字幕不卡| 精品一区二区三区在线播放| 亚洲免费观看高清完整版在线| 日韩一区二区免费在线电影| 国产原创一区二区| 综合激情成人伊人| 91麻豆高清视频| 欧美性猛片xxxx免费看久爱| 久久不见久久见免费视频1| 亚洲一区中文在线| 亚洲高清视频中文字幕| 欧美肥妇free| 色网综合在线观看| 六月丁香综合在线视频| 免费观看一级欧美片| 亚洲福利电影网| 亚洲区小说区图片区qvod| 国产欧美久久久精品影院| 久久久777精品电影网影网| 一区二区三区中文字幕电影| 石原莉奈在线亚洲三区| 亚洲欧美日韩久久| 国产麻豆午夜三级精品| 国产福利91精品一区二区三区| 极品美女销魂一区二区三区免费| 国产成人av在线影院| 国产成人免费网站| 成人的网站免费观看| 欧洲av一区二区嗯嗯嗯啊| 91伊人久久大香线蕉| 欧美日韩电影一区| 欧美丝袜丝交足nylons图片| 中文字幕 久热精品 视频在线| 麻豆精品视频在线观看免费 | 26uuu另类欧美| 欧美激情一区二区三区在线| 亚洲天堂免费在线观看视频| 国产传媒一区在线| 日韩免费观看高清完整版| 中文一区二区完整视频在线观看| 亚洲国产精品综合小说图片区| 在线视频国内一区二区| 1000部国产精品成人观看| av一二三不卡影片| 欧美电影免费观看高清完整版| 亚洲精品少妇30p| 欧洲国内综合视频| 精品国产免费一区二区三区香蕉| 一区二区三区国产精品| a亚洲天堂av| 亚洲三级在线观看| 国产综合久久久久久鬼色| 欧美成人女星排行榜| 一区二区高清免费观看影视大全 | 在线成人小视频| 国产成人精品免费| 亚洲愉拍自拍另类高清精品| 精品一区二区三区在线观看| 久久久久国产精品麻豆ai换脸| 国产成人亚洲综合a∨婷婷图片| 日韩三级在线观看| 亚洲精品中文字幕在线观看| 成人午夜av影视| 午夜精品爽啪视频| 欧美一级高清片| 亚洲成人三级小说| 91视频com| 亚洲美腿欧美偷拍| 色婷婷精品大视频在线蜜桃视频| 日本一区二区视频在线观看| 国产精品主播直播| 久久婷婷综合激情| 91福利精品视频| 亚洲欧美日韩综合aⅴ视频| 成人午夜短视频| 亚洲永久精品国产| 99精品国产91久久久久久| 国产欧美一区二区精品性色| 在线精品视频免费播放| 国产在线视频精品一区| 日韩欧美久久久| 成人午夜碰碰视频| 亚洲综合视频网| 欧美一级艳片视频免费观看| 国产永久精品大片wwwapp| 伊人一区二区三区| 久久久久久久久久久久电影| 成人免费黄色在线| 国产精品综合一区二区三区| 久久伊人蜜桃av一区二区| 精品成人一区二区三区| 在线观看亚洲精品视频| 精品一区中文字幕| 亚洲自拍与偷拍| 26uuu成人网一区二区三区| 国产成人av电影在线播放| 蜜桃精品视频在线| 一区视频在线播放| 丝袜美腿亚洲综合| 欧美女孩性生活视频| 成人av先锋影音| 久久99精品国产| 亚洲国产日韩在线一区模特| 亚洲国产精品国自产拍av| 欧美成人福利视频| 在线亚洲欧美专区二区| 91国内精品野花午夜精品| 久久国产生活片100| 一区二区三区波多野结衣在线观看| 日韩欧美国产精品| 在线观看免费成人| 欧美日韩中文字幕一区二区| 在线观看视频欧美| 高清国产午夜精品久久久久久| 另类成人小视频在线| 精品一区二区综合| 紧缚奴在线一区二区三区| 国产91在线观看| 在线视频欧美精品| 99国产精品视频免费观看| 欧美性淫爽ww久久久久无| 欧美日韩精品一区二区三区蜜桃| 日韩一二三区视频| 一区二区久久久| 韩国v欧美v亚洲v日本v| 国产 日韩 欧美大片| 91麻豆福利精品推荐| 欧美日韩视频在线第一区| 国产日韩欧美不卡在线| 日本一区二区综合亚洲| 国产馆精品极品| 91在线一区二区| 欧美精品在线观看一区二区| 日韩欧美高清在线| 一区二区在线看| 国产不卡视频在线观看| 欧美久久免费观看| 亚洲国产成人av网| 91免费视频观看| 亚洲三级免费电影| 久久99精品久久久久久动态图 | 99re视频精品| 久久日韩粉嫩一区二区三区 | 奇米色一区二区三区四区| 欧美日韩国产精选| 亚洲成人免费观看| 欧美精品久久一区| 免费成人你懂的| 国产乱一区二区| 欧美日韩午夜在线视频| 国产一区二区免费看|