這篇文章主要介紹“sql_mode的模式有哪些”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強(qiáng),希望這篇“sql_mode的模式有哪些”文章能幫助大家解決問題。
創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達(dá)十余年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的全網(wǎng)整合營銷推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:成都公路鉆孔機(jī)等企業(yè),備受客戶贊譽。
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ù)時,如果某個字段的值無法轉(zhuǎn)換為目標(biāo)數(shù)據(jù)類型,則 MySQL 會報錯。此模式只適用于事務(wù)表。
所以這個模式不一致會導(dǎo)致同樣代碼在不同環(huán)境報錯
此模式只針對 innodb 表
STRICT_ALL_TABLES
與 STRICT_TRANS_TABLES 類似,但是此模式適用于所有表,包括非 innodb 表。
ERROR_FOR_DIVISION_BY_ZERO
如果除數(shù)為零,則 MySQL 會拋出錯誤。如果未啟用此模式,則 MySQL 將返回 NULL。
NO_AUTO_CREATE_USER
當(dāng) MySQL 使用 GRANT 語句創(chuàng)建新用戶時,不允許創(chuàng)建不存在的用戶。如果啟用此模式,則必須先手動創(chuàng)建用戶。
NO_ENGINE_SUBSTITUTION
如果指定的存儲引擎不存在,則 MySQL 不會替換為其他存儲引擎,而是報錯。
ANSI_QUOTES
啟用此模式后,MySQL 會將雙引號視為標(biāo)識符的引號,而不是字符串的引號。
IGNORE_SPACE
如果啟用此模式,則 MySQL 會忽略 SQL 語句中的空格。這樣可以在不更改 SQL 語句結(jié)構(gòu)的情況下美化 SQL 語句。
ONLY_FULL_GROUP_BY
如果啟用此模式,則在 GROUP BY 語句中必須包含所有非聚合的列,否則 MySQL 會報錯。
NO_ZERO_IN_DATE
如果啟用此模式,則 MySQL 不允許在日期或時間中使用零值。
NO_ZERO_DATE
如果啟用此模式,則 MySQL 不允許使用 “0000-00-00” 日期。
關(guān)于“sql_mode的模式有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。