MySQL Variables sql_mode 数据库 参数变量解释及正确配置使用

本站中文解释

sql_mode是MySQL的一个特殊参数,用于管理MySQL中的SQL模式,使MySQL能够支持不同的SQL语法、错误级别和错误消息等。
sql_mode参数的主要用途有:
1、影响MySQL执行处理SQL语句时如何处理数据;
2、影响MySQL如何确定是否遵循ANSI SQL规范;
3、影响MySQL处理NULL值;
4、影响MySQL报告哪些错误(即发出哪些消息);
5、影响MySQL校验域的模式。

MySQL的sql_mode参数可以通过编辑my.cnf文件的[mysqld]节来设置,使用下面的格式:
sql_mode = 参数1[,参数2…]
例如:sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

官方英文解释

sql_mode

Command-Line Format --sql-mode=name
System Variable sql_mode
Scope Global, Session
Dynamic Yes
Type Set
Default Value ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES NO_ZERO_IN_DATE NO_ZERO_DATE ERROR_FOR_DIVISION_BY_ZERO NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION
Valid Values

ALLOW_INVALID_DATES

ANSI_QUOTES

ERROR_FOR_DIVISION_BY_ZERO

HIGH_NOT_PRECEDENCE

IGNORE_SPACE

NO_AUTO_CREATE_USER

NO_AUTO_VALUE_ON_ZERO

NO_BACKSLASH_ESCAPES

NO_DIR_IN_CREATE

NO_ENGINE_SUBSTITUTION

NO_FIELD_OPTIONS

NO_KEY_OPTIONS

NO_TABLE_OPTIONS

NO_UNSIGNED_SUBTRACTION

NO_ZERO_DATE

NO_ZERO_IN_DATE

ONLY_FULL_GROUP_BY

PAD_CHAR_TO_FULL_LENGTH

PIPES_AS_CONCAT

REAL_AS_FLOAT

STRICT_ALL_TABLES

STRICT_TRANS_TABLES

The current server SQL mode, which can be set dynamically. For
details, see Section 5.1.10, “Server SQL Modes”.

Note

MySQL installation programs may configure the SQL mode
during the installation process. If the SQL mode differs
from the default or from what you expect, check for a
setting in an option file that the server reads at startup.


数据运维技术 » MySQL Variables sql_mode 数据库 参数变量解释及正确配置使用