Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

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 服务器将这些模式单独应用于不同的客户端。有关更多信息,请参阅 第 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.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 模式”