跳到主要内容

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