我有一个小数据库,我刚刚添加了一些表并设置了外键约束...
现在我想上传一些数据,并阅读了有关使用以下内容暂时关闭检查的信息...
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
权限才能更改全局选项,但您似乎没有该权限。
关于mysql - 无法将foreign_key_checks设置为0/off,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45258632/