sql_model
是mysql
數據庫的一些合理性配置,舊版本默認爲空,即不做任何限制,可是在5.7版本
以後會有相關參數的默認配置,能夠經過如下命令進行查詢:mysql
select @@sql_mode;
如圖所示,每一個配置項用,
號隔開了,接下來簡單講講各個配置的做用:sql
對於GROUP BY
聚合操做,若是在SELECT中
的列,沒有在GROUP BY
中出現,那麼這個SQL
是不合法的,由於列不在GROUP BY
從句中。數據庫
在該模式下,若是一個值不能插入到一個事務表中,則中斷當前的操做,對非事務表不作限制。函數
在嚴格模式下,不容許日期和月份爲零。.net
在嚴格模式下,不容許插入零日期,插入零日期會拋出錯誤而不是警告。3d
在INSERT或UPDATE過程當中,若是數據被零除,則產生錯誤而非警告。如 果未給出該模式,那麼數據被零除時mysql
返回NULL
。code
禁止GRANT建立密碼爲空的用戶。blog
該值影響自增加列的插入。默認設置下,插入0
或NULL
表明生成下一個自增加值。若是用戶 但願插入的值爲0
,而該列又是自增加的,那麼這個選項就有用了。事務
若是須要的存儲引擎被禁用或未編譯,那麼拋出錯誤。不設置此值時,用默認的存儲引擎替代,並拋出一個異常。ip
將||
視爲字符串的鏈接操做符而非或運算符,這和Oracle數據庫是同樣的,也和字符串的拼接函數concat
相相似。
啓用ANSI_QUOTES
後,不能用雙引號來引用字符串,由於它被解釋爲識別符。
以上能夠根據自身需求進行配置,多個用,
號隔開便可
根據如下sql
語句模板進行自定義,執行便可:
set @@global.sql_mode='模式列表';
修改mysql
的配置文件,window
s在mysql
安裝目錄下的my.ini
配置文件,CentOS
在/etc
目錄下的my.cnf
配置文件。
在[mysqld]
下方增長如下內容便可
sql_model=模式列表
修改完成後重啓mysql服務