当前位置: 首页 > 面试题库 >

如何在MySQL中暂时禁用外键约束?

公羊俊
2023-03-14
问题内容

是否可以暂时禁用MySQL中的约束?

我有两个Django模型,每个模型都有一个到另一个的ForeignKey。由于ForeignKey约束,删除模型实例将返回错误:

cursor.execute("DELETE FROM myapp_item WHERE n = %s", n)
transaction.commit_unless_managed()  #a foreign key constraint fails here

cursor.execute("DELETE FROM myapp_style WHERE n = %s", n)
transaction.commit_unless_managed()

是否可以暂时禁用约束并仍然删除?


问题答案:

尝试DISABLE KEYS

SET FOREIGN_KEY_CHECKS=0;

确保

SET FOREIGN_KEY_CHECKS=1;


 类似资料:
  • 问题内容: 是否可以在MySQL中暂时禁用约束? 我有两个Django模型,每个模型都具有到另一个的外键。由于外键约束,删除模型实例将返回错误: 是否可以暂时禁用约束并仍然删除? 问题答案: 尝试或 确保 后。

  • 问题内容: 刚在Mac OS X 10.6上安装了MySQL 5.5,并且在许多表上都有一个奇怪的问题。下面是一个例子。插入行失败,但不应插入外键约束。它引用的外键确实存在。有任何想法吗? 更新 :多次删除并重新创建数据库后,我在上述插入失败后进行了操作,并得到了令人惊讶的结果。找不到父语言表!这似乎很奇怪…有什么想法吗? 更新2 :事实证明,这只是MySQL中的一个 巨大 错误。显然,最新版本的

  • 本文向大家介绍MySQL外键约束的禁用与启用命令,包括了MySQL外键约束的禁用与启用命令的使用技巧和注意事项,需要的朋友参考一下 MySQL外键约束的禁用与启用: MySQL外键约束是否启用是通过一个全局变量标示的: FOREIGN_KEY_CHECKS=0; 禁用状态 FOREIGN_KEY_CHECKS=1; 启用状态 查看当前FOREIGN_KEY_CHECKS的值可用如下命令: SELE

  • 问题是,如果整个迁移运行,那么我将用另一列替换列,并修复外键。那么,有什么方法可以忽略迁移的约束呢?

  • 主要内容:在创建表时设置外键约束,在修改表时添加外键约束,删除外键约束MySQL外键约束(FOREIGN KEY)是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,相关联字段中主键所在的表就是主表(父表),外键所在的表就是从表(子表)。 外键用来建立主表与从表的关联关系,为两个表的数据建立连接,约束两个表中数据的一致性和完整性。比如,一个水果摊,只有苹果、桃子、李子、西瓜等 4 种水果,那么,你来到水果摊要买水果就只能选择苹果、桃子、李子和西

  • 问题内容: 我在想, 我确定可以控制添加的类型,因此在MySQL中使用约束作为外键的动机是什么? 它会提高性能吗? 问题答案: 外键强制执行参照完整性。这些约束保证了表中具有引用表的字段的行将永远不会具有表中不存在的值。 外键不需要具有有效的关系数据库(实际上MySQL的默认存储引擎不支持FK),但是对于避免断开关系和孤立行(即参照完整性),它们绝对是必不可少的。是必需的在数据库级别实施参照完整性