mysql - truncate foreign key constrained table -


क्यों TRUNCATE पर mygroup काम नहीं करता है? हालांकि, मेरे पास पर DELETE CASCADE SET I get:

त्रुटि 1701 (42000): किसी विदेशी कुंजी बाधा में संदर्भित तालिका को छोटा नहीं कर सकता ( mytest < / Code>। उदाहरण , CONSTRAINT example_ibfk_1 विदेशी कुंजी ( GroupID ) संदर्भ mytest mygroup ( आईडी ))

  ड्रॉप डेटाबेस mytest; डेटाबेस मैटस्टेस्ट बनाएं; Mytest का उपयोग करें; टेबल मेग्यूट बनाएं (आईडी INT नहीं शुद्ध AutoConnect प्राथमिक कुंजी) इंजन = InnoDB; सारणी उदाहरण बनाएँ (आईडी INT नहीं शुद्ध AutoConnect प्राथमिक कुंजी, समूह IID INT नहीं, दिनांक समय DATETIME DEFAULT शून्य, विदेशी कुंजी (GroupID) संदर्भ DELETE CASCADE, UNIQUE (GroupID) पर mygroup (आईडी) इंजन = InnoDB;    

आप नहीं कर सकते TRUNCATE एक तालिका जिसके पास एफके की बाधाएं हैं इस पर ( TRUNCATE ऐसा नहीं है DELETE )।

इस के आसपास काम करने के लिए, इन समाधानों में से किसी का उपयोग करें डेटा अखंडता को नुकसान पहुंचाने के मौजूदा जोखिम दोनों।

विकल्प 1:

  1. बाधाओं को निकालें
  2. TRUNCATE करें
  3. मैन्युअल रूप से पंक्तियों को हटाएं जो अब कहीं नहीं
  4. संदर्भों के लिए

    विकल्प 2: user447951 में

      SET FOREIGN_KEY_CHECKS = 0 द्वारा सुझाए गए; TRUNCATE तालिका $ table_name; सेट FOREIGN_KEY_CHECKS = 1;    

Comments