首页 > 解决方案 > “设置foreign_key_checks = 0;” 但仅适用于一个数据库

问题描述

我有一个包含许多数据库的伞式 MySQL 服务器。我想禁用一个数据库中所有表的外键。但是,通常的命令会禁用所有数据库的外键。

有没有办法让它只在一个数据库的范围内工作?另外,我希望它不是每个会话都可以工作。但对于全球会话而言。

标签: mysqlforeign-keys

解决方案


否。该变量适用于 MySQL 实例上的所有外键。没有办法将其限制在一个模式的范围内。

唯一的解决方案是您已经知道的解决方案:

  • set foreign_key_checks=0作为会话变量,仅适用于将访问您想到的模式的会话。
  • 在您想到的模式的表中删除外键约束。
  • 将架构托管在单独的 MySQL 实例中。

推荐阅读