回答

收藏

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

技术问答 技术问答 72 人阅读 | 0 人回复 | 2023-09-13

是否可以在MySQL中暂时禁用约束?. F6 g/ l; v% e/ [* |: i! y9 X, i
我有两个Django模型,每个模型都具有到另一个的外键。由于外键约束,删除模型实例将返回错误:/ O' a' d7 o, U4 R& o% X
cursor.execute("DELETE FROM myapp_item WHERE n = %s", n)
  {9 k" u1 A- j3 t$ g; {( ^* ]transaction.commit_unless_managed()  #a foreign key constraint fails here
+ L) N( S- ?* F# `3 z" Jcursor.execute("DELETE FROM myapp_style WHERE n = %s", n)0 m1 H5 U. Z' K8 I
transaction.commit_unless_managed()& A) |: y: s. V! B) V3 U
是否可以暂时禁用约束并仍然删除?/ c" d! _4 W' ~" y/ Q
               
- w% E# W" E6 l' |6 B解决方案:! I( w5 l5 ^$ U8 K; ]+ r- E$ Z% U
                ) z* J; s& a5 w; a2 [1 ?

5 u0 Z2 w( j7 u  t% n7 Q3 Y5 ]" q4 q/ j: l( L& s
                尝试DISABLE KEYS或
' R" n/ u& e  v- }SET FOREIGN_KEY_CHECKS=0;+ X* v, d& Y. r% @8 X8 ~
确保& J  W% R  m' z8 @5 o2 @
SET FOREIGN_KEY_CHECKS=1;
/ {& l( @/ n$ {7 K5 f3 f后。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则