MySQL的foreign_key_checks会影响整个数据库吗?

15 浏览
0 Comments

MySQL的foreign_key_checks会影响整个数据库吗?

当我在MySQL中执行这个命令:

SET FOREIGN_KEY_CHECKS=0;

它会影响整个引擎还是只有我的当前事务?

admin 更改状态以发布 2023年5月20日
0
0 Comments

实际上,有两个foreign_key_checks变量:一个全局变量和一个本地(每个会话)变量。连接时,会话变量初始化为全局变量的值。
SET foreign_key_checks命令修改会话变量。
要修改全局变量,请使用SET GLOBAL foreign_key_checksSET @@global.foreign_key_checks.

请参阅以下手册章节:
http://dev.mysql.com/doc/refman/5.7/en/using-system-variables.html
http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

0
0 Comments

它是基于会话的,就像您在问题中设置的那样。

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

根据此文档,FOREIGN_KEY_CHECKS的作用范围是"Both",这意味着它可以设置为会话级别:

SET FOREIGN_KEY_CHECKS=0;

或者全局级别:

SET GLOBAL FOREIGN_KEY_CHECKS=0;

0