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

SET FOREIGN_KEY_CHECKS=0;

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


当前回答

当我试图将Drupal数据库迁移到新的本地apache服务器(我在Windows机器上使用XAMPP)时,我遇到了同样的错误。实际上我不知道这个错误的含义,但在尝试以下步骤后,我导入了数据库,没有错误。希望这能有所帮助:

在C:\xampp\php\php.ini中修改php.ini

max_execution_time = 600
max_input_time = 600
memory_limit = 1024M
post_max_size = 1024M

在C:\xampp\mysql\bin\my.ini更改my.ini

max_allowed_packet = 1024M

其他回答

# will get you the current local (session based) state.
SHOW Variables WHERE Variable_name='foreign_key_checks';

如果你没有设置全局,只有你的会话受到影响。

实际上,有两个foreign_key_checks变量:一个全局变量和一个本地(每个会话)变量。在连接时,会话变量被初始化为全局变量的值。 SET foreign_key_checks命令修改会话变量。 要修改全局变量,请使用SET global foreign_key_checks或SET @@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

当我试图将Drupal数据库迁移到新的本地apache服务器(我在Windows机器上使用XAMPP)时,我遇到了同样的错误。实际上我不知道这个错误的含义,但在尝试以下步骤后,我导入了数据库,没有错误。希望这能有所帮助:

在C:\xampp\php\php.ini中修改php.ini

max_execution_time = 600
max_input_time = 600
memory_limit = 1024M
post_max_size = 1024M

在C:\xampp\mysql\bin\my.ini更改my.ini

max_allowed_packet = 1024M

如果使用Mysql查询浏览器,SET FOREIGN_KEY_CHECKS=0;对版本1.1.20没有任何影响。但是,它在Mysql查询浏览器1.2.17上运行良好

它是基于会话的,当你在你的问题中设置的时候。

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;