A.3 MySQL 8.0 常见问题:服务器 SQL 模式


官方文档地址: A.3 MySQL 8.0 FAQ: Server SQL Mode


A.3.1. 什么是服务器 SQL 模式?

服务器 SQL 模式定义了 MySQL 应该支持什么 SQL 语法,以及它应该执行什么类型的数据验证检查。这使得在不同的环境中使用 MySQL 变得容易,也使得 MySQL 与其他数据库服务器一起使用变得容易。MySQL 服务器将这些模式分别应用到不同的客户端。更多信息,请参见 5.1.11 服务器 SQL 模式

A.3.2. 有多少服务器 SQL 模式?

每一种模式都可以独立开关。参见 5.1.11 服务器 SQL 模式,获得可用模式的完整列表。

A.3.3. 如何判断服务器的 SQL 模式?

可以在 MySQL 启动的时候使用--sql-mode选项设置默认的 SQL 模式。

可以使用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中的一个,选项可以组合在一起,因此您可以向模式中添加限制条件。更多信息,请参见 5.1.11 服务器 SQL 模式

A.3.6. 严格模式是否影响性能?

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

A.3.7. 安装 MySQL 8.0 时,默认的 SQL 模式是什么?

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

有关所有可用模式和默认 MySQL 行为的信息,请参见 5.1.11 服务器 SQL 模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值