• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 服务器SQL模式

    A.3.1。

    什么是服务器SQL模式?

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

    A.3.2。

    有几种服务器SQL模式?

    每种模式均可独立打开和关闭。有关可用模式的完整列表,请参见“服务器SQL模式”。

    A.3.3。

    您如何确定服务器SQL模式?

    您可以使用该选项设置默认的SQL模式(用于mysqld启动)--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已启用。选项可以组合,因此您可以为模式添加限制。有关更多信息,请参见“服务器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_ZERO,和NO_ENGINE_SUBSTITUTION

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