文档首页
MySQL 9.0 参考手册
相关文档 下载此手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

A.3 MySQL 9.0 常见问题解答:服务器 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 9.0 时,默认的服务器 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 9.0 时,默认的服务器 SQL 模式是什么?

MySQL 8.0 中的默认 SQL 模式包括这些模式:ONLY_FULL_GROUP_BYSTRICT_TRANS_TABLESNO_ZERO_IN_DATENO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERO 以及 NO_ENGINE_SUBSTITUTION

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