首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL会话sql_mode与全球sql_mode

MySQL会话sql_mode与全球sql_mode
EN

Database Administration用户
提问于 2019-09-03 06:09:08
回答 1查看 1.2K关注 0票数 0

@@SESSION.sql_mode@@GLOBAL.sql_mode展示了不同的选择。

@@SESSION.sql_mode

代码语言:javascript
复制
STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

@@GLOBAL.sql_mode

代码语言:javascript
复制
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

GLOBAL.sql_mode似乎是优先考虑的,对吗?

为什么会话设置不覆盖全局设置?

查询运行

代码语言:javascript
复制
SELECT @@GLOBAL.sql_mode, @@SESSION.sql_mode;

结果:

EN

回答 1

Database Administration用户

回答已采纳

发布于 2019-09-09 22:29:39

“会话”变量应用于连接。(通常,每个客户端只有一个连接。)两个不同的客户端(或一个客户端中的不同连接)在变量中可能有不同的值。

“全局”变量是在连接时复制到“会话”中的默认值。然后,您,或者您的客户端代码,或者第三方应用程序,或者其他任何东西,都可以更改变量。

注意:一些全局变量实际上是全局的--“会话”值总是跟踪全局副本。

如果您显示来自同一连接的会话值,那么这就是连接使用的内容。如果建立单独的连接来读取值,那么所看到的可能并不是有效的。

有数以百计的第三方软件包,谁知道他们每一个做什么。此外,不同版本的包都会发生变化。

可以在会话中更改sql_mode

在您的示例中,连接中的某些内容将STRICT_TRANS_TABLES添加到SQL_MODE中。并且它应该在连接生效,直到它再次被改变。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/246817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档