文档首页
MySQL 8.4 参考手册
相关文档 下载本手册
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手册页 (TGZ) - 258.5Kb
手册页 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 参考手册  /  MySQL 8.4 常见问题解答  /  MySQL 8.4 常见问题解答:服务器 SQL 模式

A.3 MySQL 8.4 常见问题解答:服务器 SQL 模式

A.3.1. 什么是服务器 SQL 模式?
A.3.2. 服务器 SQL 模式有多少种?
A.3.3. 如何确定服务器 SQL 模式?
A.3.4. 模式是否依赖于数据库或连接?
A.3.5. 严格模式的规则可以扩展吗?
A.3.6. 严格模式是否会影响性能?
A.3.7. MySQL 8.4 安装后,默认服务器 SQL 模式是什么?

A.3.1.

什么是服务器 SQL 模式?

服务器 SQL 模式定义了 MySQL 应该支持的 SQL 语法以及应该执行的数据验证检查。这使得在不同的环境中使用 MySQL 以及将 MySQL 与其他数据库服务器一起使用变得更加容易。MySQL 服务器分别对不同的客户端应用这些模式。有关更多信息,请参见 第 7.1.11 节,“服务器 SQL 模式”.

A.3.2.

服务器 SQL 模式有多少种?

每个模式可以独立启用和禁用。请参见 第 7.1.11 节,“服务器 SQL 模式”,以获取可用模式的完整列表。

A.3.3.

如何确定服务器 SQL 模式?

您可以使用 --sql-mode 选项设置默认 SQL 模式(用于 mysqld 启动)。使用语句 SET [GLOBAL|SESSION] sql_mode='modes',您可以从连接内部更改设置,要么局部地对连接进行更改,要么使更改在全局生效。您可以通过发出 SELECT @@sql_mode 语句来检索当前模式。

A.3.4.

模式是否依赖于数据库或连接?

模式不链接到特定的数据库。模式可以局部地设置到会话(连接),也可以全局地设置到服务器。您可以使用 SET [GLOBAL|SESSION] sql_mode='modes' 来更改这些设置。

A.3.5.

严格模式的规则可以扩展吗?

当我们提到 严格模式 时,我们指的是至少启用了 TRADITIONALSTRICT_TRANS_TABLESSTRICT_ALL_TABLES 这些模式的模式。选项可以组合,因此您可以向模式添加限制。有关更多信息,请参见 第 7.1.11 节,“服务器 SQL 模式”.

A.3.6.

严格模式是否会影响性能?

某些设置需要对输入数据进行密集的验证,这比不进行验证要花费更多时间。虽然性能影响并不大,但如果您不需要此类验证(也许您的应用程序已经处理了所有这些验证),那么 MySQL 允许您选择禁用严格模式。但是,如果您确实需要验证,则严格模式可以提供此类验证。

A.3.7.

MySQL 8.4 安装后,默认服务器 SQL 模式是什么?

MySQL 8.0 中的默认 SQL 模式包括以下模式:ONLY_FULL_GROUP_BYSTRICT_TRANS_TABLESNO_ZERO_IN_DATENO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERONO_ENGINE_SUBSTITUTION.

有关所有可用模式和默认 MySQL 行为的信息,请参见 第 7.1.11 节,“服务器 SQL 模式”.