這篇文章為大家帶來了關於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 會報錯。此模式只適用於事務表。 所以這個模式不一致會導致同樣程式碼在不同環境報錯此模式只針對innodb 表
STRICT_ALL_TABLES
與STRICT_TRANS_TABLES 類似,但此模式適用於所有表,包括非innodb 表。
ERROR_FOR_DIVISION_BY_ZERO
#如果除數為零,則 MySQL 會拋出錯誤。如果未啟用此模式,則 MySQL 將傳回 NULL。
NO_AUTO_CREATE_USER
當 MySQL 使用 GRANT 語句建立新使用者時,不允許建立不存在的使用者。如果啟用此模式,則必須先手動建立使用者。
NO_ENGINE_SUBSTITUTION
如果指定的儲存引擎不存在,則 MySQL 不會替換為其他儲存引擎,而是報錯。
ANSI_QUOTES
啟用此模式後,MySQL 會將雙引號視為標識符的引號,而不是字串的引號。
IGNORE_SPACE
如果啟用此模式,則 MySQL 會忽略 SQL 語句中的空格。這樣可以在不更改 SQL 語句結構的情況下美化 SQL 語句。
以上是聊聊sql_mode的各模式有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!