无法将foreign_key_checks设置为0 / off

时间:2017-07-22 19:57:44

标签: mysql phpmyadmin

我有一个小数据库,我刚刚添加了一些表并设置了外键约束......

现在我想上传一些数据并阅读有关使用以下内容暂时关闭支票的信息......

SET FOREIGN_KEY_CHECKS = 0;

我正在从SQL窗口运行此查询...我收到'成功'消息但是当我检查设置(通过SHOW Variables WHERE Variable_name='foreign_key_checks';)时,设置显示为ON,如果没有进入foreign_key则无法上传 - 检查错误/投诉。

运行查询后的消息:

  

MySQL返回一个空结果集(即零行)。 (查询了   0.0001秒。)

我尝试使用全球版本并收到一条消息,说我的用户没有必要的权限......

我甚至不知道我通过哪个用户访问数据库 - 我在登录我的云托管专用服务器后使用phpMyAdmin ...而不是通过数据库用户。

我在phpMyAdmin主页的底部看到以下内容:

  

您的PHP MySQL库版本5.1.73与您的MySQL服务器版本5.6.36不同。这可能会导致不可预测的行为。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

仅在会话期间更改foreign_key_checks之类的会话变量。打开新连接后,该选项默认为全局值。

与每个PHP应用程序一样,PhpMyAdmin为每个请求打开一个新连接。因此,只要您更改SET GLOBAL ...,它就会关闭您更改该选项的会话,并且您的更改已结束。

如果要更改此选项,则必须在导入脚本中执行更改,因此在处理导入的连接开始时会对其进行处理。

另一种可能性是使用SUPER进行更改,但这会影响所有会话,而不仅仅是您导入的会话。此外,您需要$table->integer('acceptor')->unsigned(); 权限才能更改全局选项,而您似乎没有这种权限。

编辑: 另一种选择是取消选中"启用外键检查"在进口阶段...... Screenshot of Import in phpMyAdmin