本篇文章給大家?guī)砹岁P于mysql的相關知識,其中主要跟大家聊一聊sql_mode的各模式有哪些,感興趣的朋友下面一起來看一下吧,希望對大家有幫助。
sql_mode的各模式介紹
查看 sql_mode
(資料圖片僅供參考)
mysql> SHOW VARIABLES LIKE "sql_mode";+---------------+--------------------------------------------+| Variable_name | Value |+---------------+--------------------------------------------+| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |+---------------+--------------------------------------------+1 row in set (0.16 sec)
STRICT_TRANS_TABLES
在插入或更新數據時,如果某個字段的值無法轉換為目標數據類型,則 MySQL 會報錯。此模式只適用于事務表。
所以這個模式不一致會導致同樣代碼在不同環(huán)境報錯
此模式只針對 innodb 表
STRICT_ALL_TABLES
與 STRICT_TRANS_TABLES 類似,但是此模式適用于所有表,包括非 innodb 表。
ERROR_FOR_DIVISION_BY_ZERO
如果除數為零,則 MySQL 會拋出錯誤。如果未啟用此模式,則 MySQL 將返回 NULL。
NO_AUTO_CREATE_USER
當 MySQL 使用 GRANT 語句創(chuàng)建新用戶時,不允許創(chuàng)建不存在的用戶。如果啟用此模式,則必須先手動創(chuàng)建用戶。
NO_ENGINE_SUBSTITUTION
如果指定的存儲引擎不存在,則 MySQL 不會替換為其他存儲引擎,而是報錯。
ANSI_QUOTES
啟用此模式后,MySQL 會將雙引號視為標識符的引號,而不是字符串的引號。
IGNORE_SPACE
如果啟用此模式,則 MySQL 會忽略 SQL 語句中的空格。這樣可以在不更改 SQL 語句結構的情況下美化 SQL 語句。
ONLY_FULL_GROUP_BY
如果啟用此模式,則在 GROUP BY 語句中必須包含所有非聚合的列,否則 MySQL 會報錯。
NO_ZERO_IN_DATE
如果啟用此模式,則 MySQL 不允許在日期或時間中使用零值。
NO_ZERO_DATE
如果啟用此模式,則 MySQL 不允許使用 “0000-00-00” 日期。
推薦學習:《MySQL視頻教程》
以上就是聊聊sql_mode的各模式有哪些的詳細內容,更多請關注php中文網其它相關文章!
關鍵詞: