首頁  >  文章  >  資料庫  >  聊聊sql_mode的各模式有哪些

聊聊sql_mode的各模式有哪些

藏色散人
藏色散人轉載
2023-03-14 17:17:042081瀏覽

這篇文章為大家帶來了關於mysql的相關知識,其中主要跟大家聊一聊sql_mode的各模式有哪些,有興趣的朋友下面一起來看一下吧,希望對大家有幫助。

聊聊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 語句。

ONLY_FULL_GROUP_BY#########如果啟用此模式,則在 GROUP BY 語句中必須包含所有非聚合的資料列,否則 MySQL 會報錯。 #########NO_ZERO_IN_DATE#########如果啟用此模式,則 MySQL 不允許在日期或時間中使用零值。 #########NO_ZERO_DATE#########如果啟用此模式,則 MySQL 不允許使用 “0000-00-00” 日期。 ######推薦學習:《###MySQL影片教學###》######

以上是聊聊sql_mode的各模式有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除