MySQL 服务器的 SQL 模式
-- 查询本次会话的 SQL 模式
SELECT @@SESSION.SQL_MODE;
-- 查询全局 SQL_MODE
SELECT @@global.SQL_MODE;
-- 设置本次会话专用的 SQL 模式
SET sql_mode = 'TRADITIONAL';
-- 对 SQL 模式作全局性设置
SET GLOBAL SQL_MODE = 'TRADITIONAL';
MySQL 服务器有一个名为 sql_mode 的系统变量可以让你调控其 SQL 模式,SQL 模式对 SQL 语句的执行情况有多方面的影响。
SQL 模式:
- STRICT_ALL_TABLES 和 STRICT_TRANS_TABLES 将启用严格模式。(拒绝“坏”数据值,而不是把它们转换为最接近的有效值)
- TRADITIONAL 是一个组合模式。它类似于严格模式,但启用了其他几种引入额外限制条件的模式以进行更加严格的数据检查。在处理“坏”数据值时,更接近于传统的 SQL 服务器。
- ANST_QUOTES 告诉 MySQL 服务器把双引号识别为一个标识符引用字符。
- PIPES_AS_CONCAT 将导致 "||" 字符串被视为一个标准的 SQL 字符串合并操作符,而不是 "OR" 操作符的一个同义词。
- ANSI 是一个组合模式。它将同时启用 ANSI_QUOTES、PIPES_AS_CONCAT 和另外几种模式值,其结果是让 MySQL 服务器的行为比它的默认运行状态更接近于标准的 SQL。