mysql - 无法将foreign_key_checks设置为0/off

标签 mysql phpmyadmin

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

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

SET FOREIGN_KEY_CHECKS = 0;

我正在从 SQL 窗口运行此查询...我收到“成功”消息,但当我检查设置时(通过 SHOW Variables WHERE Variable_name='foreign_key_checks';),设置显示作为ON,我无法在没有遇到foreign_key-check错误/投诉的情况下上传。

运行查询后的消息:

MySQL returned an empty result set (i.e. zero rows). (Query took 0.0001 seconds.)

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

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

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

Your PHP MySQL library version 5.1.73 differs from your MySQL server version 5.6.36. This may cause unpredictable behavior.

感谢任何帮助。

最佳答案

更改 session 变量(例如 foreign_key_checks)仅在 session 期间有效。打开新连接后,该选项默认为全局值。

PhpMyAdmin 与每个 PHP 应用程序一样,为每个请求打开一个新连接。因此,一旦您更改 foreign_key_checks,它就会关闭您更改该选项的 session ,并且您的更改就会结束。

如果您想更改此选项,则必须将更改作为导入脚本的一部分执行,以便在处理导入的连接开始时对其进行处理。

另一种可能性是使用SET GLOBAL ...更改它,但这会影响所有 session ,而不仅仅是您用于导入的 session 。另外,您需要 SUPER 权限才能更改全局选项,但您似乎没有该权限。

编辑: 另一种选择是在导入阶段取消选中“启用外键检查”... Screenshot of Import in phpMyAdmin

关于mysql - 无法将foreign_key_checks设置为0/off,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45258632/

相关文章:

php - Eloquent mass 插入,重复键更新

php - Laravel .env DB_HOST 127.0.0.1 与本地主机

mysql - 关于我的关系数据库查询的建议

javascript - 动态显示/隐藏记录子集?

php - mysql导入大sql文件

php - 通过选择总和(总计)来更新总计

mysql - mysql中的双数据类型

php - MySQL 查询在测试机器上运行正常,但在 ISP 服务器上失败

php - 如何通过外键过滤SQL中的表?

mysql - 一行中的最后一个条目不为空