SQL 模式
mysql 官方文档:https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html
sql_mode 会影响 MySQL 支持的 SQL 语法以及它执行的数据验证检查 the data validation checks
。
一、修改 sql_mode
1、在启动时修改
在启动时通过 --sql-mode="modes"
或 sql-mode="modes"
或修改 my.cnf/my.ini
来指定 sql_mode
。 多个mode
通过英文逗号分隔。
2、在运行时修改
需要角色拥有 SYSTEM_VARIABLES_ADMIN
权限。
-- 影响所有的客户端
SET GLOBAL sql_mode = '_modes_';
-- 仅影响当前的连接
SET SESSION sql_mode = '_modes_';
二、宽松模式 vs 严格模式
宽松模式:NO_ENGINE_SUBSTITUTION 一般在数据库迁移时使用 严格模式:STRICT_TRANS_TABLES 绝大部分使用严格模式
三、SQL mode 的完整列表
https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sql-mode-full