Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  MySQL 8.3 Frequently Asked Questions  /  MySQL 8.3 FAQ: Server SQL Mode

A.3 MySQL 8.3 FAQ:服务器 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.3 时的默认服务器 SQL 模式是什么?

A.3.1.

服务器 SQL 模式是什么?

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

A.3.2.

有多少服务器 SQL 模式?

每个模式可以独立开启或关闭。请参阅 第 7.1.11 节,“服务器 SQL 模式”,以获取可用模式的完整列表。

A.3.3.

如何确定服务器 SQL 模式?

您可以使用 mysqld 启动时的默认 SQL 模式,使用 --sql-mode 选项。使用语句 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.3 时的默认服务器 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 模式”