MySQL——SQL Mode詳解

來源:互聯網
上載者:User

標籤:

簡介

  MySQL伺服器能夠工作在不同的SQL模式下,並能針對不同的用戶端以不同的方式應用這些模式。這樣,應用程式就能對伺服器操作進行量身定製以滿足自己的需求。這類模式定義了MySQL應支援的SQL文法,以及應該在資料上執行何種確認檢查。這樣,就能在眾多不同的環境下,與其他資料庫伺服器一起更容易地使用MySQL。從MySQL 4.1 開始,也能在啟動之後,使用SET[SESSION|GLOBAL]sql_mode=‘mode1,mode2…‘語句,通過設定sql_mode變數更改模式。

  在*nux下安裝完MySQL後,預設的sql_mode值是空,在這種情形下MySQL執行的是一種不嚴格的檢查,比如查詢條件為字串類型時,如果沒有對應的sql_mode設定,那麼where column = "…"或者where column = ‘…‘ 都是允許的。

  下面舉一個簡單的栗子??,通過修改sql_mode來解決這個問題:

  上面的這個例子中:表wm_poi_dispatch_setting有一個varchar類型的欄位diff,因為sql_mode預設為空白,所以where diff = "234"時是可以通過並獲得結果的;當修改sql_mode為‘ANSI_QUOTES‘時,重新查詢,發現就會提示ERROR 1054 (42S22): Unknown column ‘234‘ in ‘where clause‘。

  通過上面的例子,對sql_mode的簡單設定,便能解決這個問題,即能控制sql規範,也能夠識別"這個字元。 

sql_mode常用值

MySQL——SQL Mode詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.