共計(jì) 1262 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
這篇文章主要介紹“sql_mode 的模式有哪些”的相關(guān)知識(shí),丸趣 TV 小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“sql_mode 的模式有哪些”文章能幫助大家解決問(wèn)題。
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
在插入或更新數(shù)據(jù)時(shí),如果某個(gè)字段的值無(wú)法轉(zhuǎn)換為目標(biāo)數(shù)據(jù)類型,則 MySQL 會(huì)報(bào)錯(cuò)。此模式只適用于事務(wù)表。
所以這個(gè)模式不一致會(huì)導(dǎo)致同樣代碼在不同環(huán)境報(bào)錯(cuò)
此模式只針對(duì) innodb 表
STRICT_ALL_TABLES
與 STRICT_TRANS_TABLES 類似,但是此模式適用于所有表,包括非 innodb 表。
ERROR_FOR_DIVISION_BY_ZERO
如果除數(shù)為零,則 MySQL 會(huì)拋出錯(cuò)誤。如果未啟用此模式,則 MySQL 將返回 NULL。
NO_AUTO_CREATE_USER
當(dāng) MySQL 使用 GRANT 語(yǔ)句創(chuàng)建新用戶時(shí),不允許創(chuàng)建不存在的用戶。如果啟用此模式,則必須先手動(dòng)創(chuàng)建用戶。
NO_ENGINE_SUBSTITUTION
如果指定的存儲(chǔ)引擎不存在,則 MySQL 不會(huì)替換為其他存儲(chǔ)引擎,而是報(bào)錯(cuò)。
ANSI_QUOTES
啟用此模式后,MySQL 會(huì)將雙引號(hào)視為標(biāo)識(shí)符的引號(hào),而不是字符串的引號(hào)。
IGNORE_SPACE
如果啟用此模式,則 MySQL 會(huì)忽略 SQL 語(yǔ)句中的空格。這樣可以在不更改 SQL 語(yǔ)句結(jié)構(gòu)的情況下美化 SQL 語(yǔ)句。
ONLY_FULL_GROUP_BY
如果啟用此模式,則在 GROUP BY 語(yǔ)句中必須包含所有非聚合的列,否則 MySQL 會(huì)報(bào)錯(cuò)。
NO_ZERO_IN_DATE
如果啟用此模式,則 MySQL 不允許在日期或時(shí)間中使用零值。
NO_ZERO_DATE
如果啟用此模式,則 MySQL 不允許使用“0000-00-00”日期。
關(guān)于“sql_mode 的模式有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注丸趣 TV 行業(yè)資訊頻道,丸趣 TV 小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。