MySQL 5.7中sql_mode的含義解釋

chenfeng發表於2017-03-21
MySQL 5.7版本中sql_mode更加嚴格。解釋下各個mode的含義:

ONLY_FULL_GROUP_BY             不要讓GROUP BY部分中的查詢指向未選擇的列  
STRICT_TRANS_TABLES                為事務儲存引擎啟用嚴格模式,也可能為非事務儲存引擎啟用嚴格模式
NO_ZERO_IN_DATE                      在嚴格模式,不接受月或日部分為0的日期
NO_ZERO_DATE                          在嚴格模式,不將 '0000-00-00'做為合法日期
ERROR_FOR_DIVISION_BY_ZERO   在嚴格模式,在INSERT或UPDATE過程中,如果被零除(或MOD(X,0)),則產生錯誤  
NO_AUTO_CREATE_USER             防止GRANT自動建立新使用者,除非還指定了密碼
NO_ENGINE_SUBSTITUTION          如果需要的儲存引擎被禁用或未編譯,可以防止自動替換儲存引擎

注意:在一個主從環境下,為保證資料的一致性,一定要設定主從的sql_mode一樣,在資料遷移的時候也要保證sql_mode的一致,不然複製和遷移遇到上面的限制均會失敗,所以儘可能使用標準SQL語法。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2135752/,如需轉載,請註明出處,否則將追究法律責任。

相關文章