mysql5.7數據庫的sql_model配置說明

sql_modelmysql數據庫的一些合理性配置,舊版本默認爲空,即不做任何限制,可是在5.7版本以後會有相關參數的默認配置,能夠經過如下命令進行查詢:mysql

select @@sql_mode;

如圖所示,每一個配置項用,號隔開了,接下來簡單講講各個配置的做用:sql

ONLY_FULL_GROUP_BY

對於GROUP BY聚合操做,若是在SELECT中的列,沒有在GROUP BY中出現,那麼這個SQL是不合法的,由於列不在GROUP BY從句中。數據庫

STRICT_TRANS_TABLES

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

NO_ZERO_IN_DATE

在嚴格模式下,不容許日期和月份爲零。.net

NO_ZERO_DATE

在嚴格模式下,不容許插入零日期,插入零日期會拋出錯誤而不是警告。3d

ERROR_FOR_DIVISION_BY_ZERO

在INSERT或UPDATE過程當中,若是數據被零除,則產生錯誤而非警告。如 果未給出該模式,那麼數據被零除時mysql返回NULLcode

NO_AUTO_CREATE_USER

禁止GRANT建立密碼爲空的用戶。blog

NO_AUTO_VALUE_ON_ZERO

該值影響自增加列的插入。默認設置下,插入0NULL表明生成下一個自增加值。若是用戶 但願插入的值爲0,而該列又是自增加的,那麼這個選項就有用了。事務

NO_ENGINE_SUBSTITUTION

若是須要的存儲引擎被禁用或未編譯,那麼拋出錯誤。不設置此值時,用默認的存儲引擎替代,並拋出一個異常。ip

PIPES_AS_CONCAT

||視爲字符串的鏈接操做符而非或運算符,這和Oracle數據庫是同樣的,也和字符串的拼接函數concat相相似。

ANSI_QUOTES

啓用ANSI_QUOTES後,不能用雙引號來引用字符串,由於它被解釋爲識別符。

以上能夠根據自身需求進行配置,多個用,號隔開便可

臨時配置

根據如下sql語句模板進行自定義,執行便可:

set @@global.sql_mode='模式列表';

永久配置

修改mysql的配置文件,windows在mysql安裝目錄下的my.ini配置文件,CentOS/etc目錄下的my.cnf配置文件。

[mysqld]下方增長如下內容便可

sql_model=模式列表

修改完成後重啓mysql服務

摘抄——CSDN-小幸運-s《mysql 的sql_model模式》

相關文章
相關標籤/搜索