共計 1445 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章給大家介紹 MySQL 中 SQL 模式的特點是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
設置 SQL 模式
要在運行時更改 SQL 模式,請 sql_mode 使用以下 SET 語句設置全局或會話 系統變量
SET GLOBAL sql_mode = modes
SET SESSION sql_mode = modes
模式列表
模式注釋 ALLOW_INVALID_DATES 無效日期會生成錯誤 ERROR_FOR_DIVISION_BY_ZERO 除 0 錯誤 NO_BACKSLASH_ESCAPES 禁止使用反斜杠字符(\)作為字符串中的轉義字符。啟用此模式后,反斜杠就像其他任何一個普通字符一樣。NO_UNSIGNED_SUBTRACTION 在整數值之間減去(其中一個是類型)UNSIGNED,默認情況下會產生無符號結果。如果結果否則為負,則會導致錯誤 NO_ZERO_IN_DATE 0000-00-00 則允許并且插入產生警告 ONLY_FULL_GROUP_BYselect 內指定字段必須出現在 groupby 中,否則錯誤 STRICT_TRANS_TABLES 為事務存儲引擎啟用嚴格的 SQL 模式,并在可能的情況下為非事務性存儲引擎啟用。STRICT_ALL_TABLES 為所有存儲引擎啟用嚴格 SQL 模式。無效的數據值被拒絕。
詳情請參考 https://dev.mysql.com/doc/ref…
嚴格 SQL 模式
MySQL 服務器可以在不同的 SQL 模式下運行,并且可以針對不同的客戶端以不同的方式應用這些模式,具體取決于 sql_mode 系統變量的值。在嚴格 SQL 模式下,服務器會將某些警告升級為錯誤。
嚴格 SQL 模式適用于以下語句
ALTER TABLE
CREATE TABLE
CREATE TABLE … SELECT
DELETE
INSERT
LOAD DATA
LOAD XML
SELECT SLEEP()
UPDATE
在存儲的程序中,如果在嚴格模式生效時定義了程序,則列出的類型的單個語句將以嚴格的 SQL 模式執行。
嚴格的 SQL 模式適用于以下錯誤,表示輸入值無效或缺失的一類錯誤。如果值具有錯誤的列數據類型或可能超出范圍,則該值無效。如果要插入的新行不包含其定義中 NOT NULL 沒有顯式 DEFAULT 子句的列的值,則缺少值。
ER_BAD_NULL_ERROR
ER_CUT_VALUE_GROUP_CONCAT
ER_DATA_TOO_LONG
ER_DATETIME_FUNCTION_OVERFLOW
ER_DIVISION_BY_ZERO
ER_INVALID_ARGUMENT_FOR_LOGARITHM
ER_NO_DEFAULT_FOR_FIELD
ER_NO_DEFAULT_FOR_VIEW_FIELD
ER_TOO_LONG_KEY
ER_TRUNCATED_WRONG_VALUE
ER_TRUNCATED_WRONG_VALUE_FOR_FIELD
ER_WARN_DATA_OUT_OF_RANGE
ER_WARN_NULL_TO_NOTNULL
ER_WARN_TOO_FEW_RECORDS
ER_WRONG_ARGUMENTS
ER_WRONG_VALUE_FOR_TYPE
WARN_DATA_TRUNCATED
關于 MySQL 中 SQL 模式的特點是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
向 AI 問一下細節