> MySQL 5.7 中的默認 SQL 模式包括這些 模式:[`ONLY_FULL_GROUP_BY`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by)、[`STRICT_TRANS_TABLES`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_strict_trans_tables)、[`NO_ZERO_IN_DATE`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_zero_in_date)、[`NO_ZERO_DATE`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_zero_date)、[`ERROR_FOR_DIVISION_BY_ZERO`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_error_for_division_by_zero)、[`NO_AUTO_CREATE_USER`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_auto_create_user)和[`NO_ENGINE_SUBSTITUTION`](https://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_no_engine_substitution)。
MySQL 8.0 中的默認 SQL 模式包括這些 模式:[`ONLY_FULL_GROUP_BY`](https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_only_full_group_by)、[`STRICT_TRANS_TABLES`](https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_strict_trans_tables)、[`NO_ZERO_IN_DATE`](https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_no_zero_in_date)、[`NO_ZERO_DATE`](https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_no_zero_date)、[`ERROR_FOR_DIVISION_BY_ZERO`](https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_error_for_division_by_zero)、 和[`NO_ENGINE_SUBSTITUTION`](https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_no_engine_substitution)。
## **ONLY_FULL_GROUP_BY**
拒絕選擇列表、條件或列表引用的非聚合列的查詢,這些列既沒有在子句中命名,也沒有在功能上依賴于(由列唯一確定的)列。
## **STRICT_TRANS_TABLES**
如果設置STRICT模式,則如果數據寫入時,如果數據不符合字段定義(字符串超出長度、數值類型數據超出范圍、違反not null約束等),SQL會報錯。
如果不設置STRICT模式,會對異常數據進行截斷處理,SQL會顯示Warning,但不報錯。
### STRICT_TRANS_TABLES
如果設置strict_trans_tables SQL_MODE,則只影響事物型存儲引擎。不影響往非事務型引擎中寫入非法數據。
### STRICT_ALL_TABLES
對于非事務型存儲引擎如MyISAM,可能會出現批量Insert中部分數據寫入成功、部分數據寫入失敗的情況。事務型存儲引擎如InnoDB不存在該問題。
## **NO_ZERO_IN_DATE**
服務器是否允許年部分不為零但月或日部分為0的日期。NO_ZERO_IN_DATE的效果還取決于是否啟用了嚴格SQL模式。“2010-00-01“2010-01-00”2010-00-01“2010-00-01”。
- 如果不啟用此模式,則允許零部件的日期,并且插入不會產生警告。
- 如果啟用此模式,則插入零部分的日期,并產生警告。“0000-00-00”
- 如果啟用了此模式和嚴格模式,則不允許包含零部分的日期,并且插入會產生錯誤
*NO_ZERO_IN_DATE已棄用。NO_ZERO_IN_DATE不是嚴格模式的一部分,但應該與嚴格模式一起使用,默認情況下是啟用的。如果啟用了NO_ZERO_IN_DATE而沒有同時啟用嚴格模式,則會出現警告,反之亦然。*
## **NO_ZERO_DATE**
模式影響服務器是否允許'0000-00-00'作為有效日期。它的效果還取決于是否啟用了嚴格SQL模式。
- 如果未啟用此模式,則允許使用'0000-00-00',并且插入不會產生警告。
- 如果啟用此模式,則允許使用'0000-00-00',并且插入會產生警告。
- 如果啟用了此模式和嚴格模式,則不允許使用'0000-00-00',并且插入會產生錯誤
*NO_ZERO_DATE已棄用。NO_ZERO_DATE不是嚴格模式的一部分,但應該與嚴格模式一起使用,默認情況下是啟用的。如果啟用了NO_ZERO_DATE而沒有同時啟用嚴格模式,則會出現警告,反之亦然*
## **ERROR_FOR_DIVISION_BY_ZERO**
模式影響除零的處理,包括MOD(N,0)。對于數據更改操作(INSERT、UPDATE),其效果還取決于是否啟用了嚴格的SQL模式。
- 如果不啟用此模式,除零將插入NULL并且不產生警告。
- 如果啟用此模式,除零將插入NULL并產生警告。
- 如果啟用了此模式和嚴格模式,除零會產生錯誤,
## **NO_AUTO_CREATE_USER**
防止GRANT語句自動創建新用戶帳戶,除非指定了身份驗證信息。
## **NO_ENGINE_SUBSTITUTION**
當CREATE TABLE或ALTER TABLE等語句指定禁用或未編譯的存儲引擎時,控制默認存儲引擎的自動替換。缺省情況下,NO_ENGINE_SUBSTITUTION是啟用的。
禁用NO_ENGINE_SUBSTITUTION后,CREATE TABLE將使用默認引擎,如果所需的引擎不可用,則會出現警告。對于ALTER TABLE,會出現警告,并且不會更改表。
啟用NO_ENGINE_SUBSTITUTION后,如果所需的引擎不可用,則會發生錯誤,并且不會創建或更改表。
- PHP
- PHP 核心架構
- PHP 生命周期
- PHP-FPM 詳解
- PHP-FPM 配置優化
- PHP 命名空間和自動加載
- PHP 運行模式
- PHP 的 Buffer(緩沖區)
- php.ini 配置文件參數優化
- 常見面試題
- 常用函數
- 幾種排序算法
- PHP - 框架
- Laravel
- Laravel 生命周期
- ThinkPHP
- MySQL
- 常見問題
- MySQL 索引
- 事務
- 鎖機制
- Explain 使用分析
- MySQL 高性能優化規范
- UNION 與 UNION ALL
- MySQL報錯:sql_mode=only_full_group_by
- MySQL 默認的 sql_mode 詳解
- 正則表達式
- Redis
- Redis 知識
- 持久化
- 主從復制、哨兵、集群
- Redis 緩存擊穿、穿透、雪崩
- Redis 分布式鎖
- RedisBloom
- 網絡
- 計算機網絡模型
- TCP
- UDP
- HTTP
- HTTPS
- WebSocket
- 常見幾種網絡攻擊方式
- Nginx
- 狀態碼
- 配置文件
- Nginx 代理+負載均衡
- Nginx 緩存
- Nginx 優化
- Nginx 配置 SSL 證書
- Linux
- 常用命令
- Vim 常用操作命令
- Supervisor 進程管理
- CentOS與Ubuntu系統區別
- Java
- 消息隊列
- 運維
- RAID 磁盤陣列
- 邏輯分區管理 LVM
- 業務
- 標準通信接口設計
- 業務邏輯開發套路的三板斧
- 微信小程序登錄流程
- 7種Web實時消息推送方案
- 用戶簽到
- 用戶注冊-短信驗證碼
- SQLServer 刪除同一天用戶重復簽到
- 軟件研發完整流程
- 前端
- Redux
- 其他
- 百度云盤大文件下載
- 日常報錯記錄
- GIT
- SSL certificate problem: unable to get local issuer certificate
- NPM
- reason: connect ECONNREFUSED 127.0.0.1:31181
- SVN
- SVN客戶端無法連接SVN服務器,主機積極拒絕
- Python
- 基礎
- pyecharts圖表
- 對象
- 數據庫
- PySpark
- 多線程
- 正則
- Hadoop
- 概述
- HDFS