sql_mode

最近更新时间:2025-04-22 15:40:03

我的收藏

功能描述

sql_mode用于设置服务器的 SQL 模式。SQL 模式决定了服务器如何处理 SQL 语句的某些特性和行为,例如数据类型检查、空值处理、字符串比较等。

属性说明

属性
说明
参数类型
Set
默认值
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,多个 modes 间用逗号 (,) 间隔。
取值范围
ALLOW_INVALID_DATES:允许插入无效的日期,如 '2022-02-30'。
ANSI_QUOTES:使用 ANSI 标准的引号(双引号)来引用标识符,而不是默认的反引号。
ERROR_FOR_DIVISION_BY_ZERO:在执行除法操作时,如果除数为零,则抛出错误。
HIGH_NOT_PRECEDENCE:使 NOT 运算符具有高优先级,与 ANDOR 运算符的优先级相同。
IGNORE_SPACE:忽略标识符周围的空格。
NO_AUTO_VALUE_ON_ZERO:在插入数据时,如果整数列的值为零,则不自动生成自增值。
NO_BACKSLASH_ESCAPES:禁用反斜杠(\\)作为转义字符。
NO_DIR_IN_CREATE:禁止在 CREATE TABLE 语句中使用 DIRECTORY 选项。
NO_ENGINE_SUBSTITUTION:如果指定的存储引擎不可用,则抛出错误,而不是使用默认的存储引擎。
NO_UNSIGNED_SUBTRACTION:禁用无符号整数的减法。
NO_ZERO_DATE:禁止使用零日期('0000-00-00')。
NO_ZERO_IN_DATE:禁止在日期中使用零部分,如 '2022-00-01'。
ONLY_FULL_GROUP_BY:要求 GROUP BY 子句中的所有非聚合列都必须在 SELECT 子句中出现。
PAD_CHAR_TO_FULL_LENGTH:在插入数据时,将 CHAR 类型列的值填充到其定义的长度。
PIPES_AS_CONCAT:将管道符(||)视为字符串连接运算符,而不是逻辑或运算符。
REAL_AS_FLOAT:将 REAL 数据类型视为 FLOAT 类型,而不是 DOUBLE 类型。
STRICT_ALL_TABLES:启用所有严格模式选项,包括 STRICT_TRANS_TABLES
STRICT_TRANS_TABLES:在事务表中启用严格模式,要求插入、更新和删除操作遵循更严格的规则。
生效范围
SESSION
GLOBAL
是否可修改
是否需要重启