2011-12-16 18 views
12

मेरे पास रिश्ते की बाधाओं के साथ कई तालिकाओं हैं। सारणी में डमी डेटा से भरा होता है, मैं संरचना को बनाए रखते हुए तालिकाओं से डेटा को छोटा/खाली करना चाहता हूं।बाधाओं को अक्षम करें अस्थायी रूप से

हर बार जब मैं एक टेबल खाली करना चाहता हूं, तो मुझे विदेशी कुंजी बाधा त्रुटियां मिलती हैं। अस्थायी रूप से बाधा को अक्षम करने के लिए मैं क्या कर सकता हूं और फिर डमी डेटा हटा दिए जाने के बाद इसे वापस सक्षम कर सकता हूं।

मैंने इस समाधान की कोशिश की, लेकिन काम नहीं किया! एक बार जब मैं अक्षम करें, तो मैं MySQL का उपयोग कर रहा काटना कोशिश, मैं FK बाधा त्रुटि मिलती है ...

//disable 
SET FOREIGN_KEY_CHECKS = 0; 


//enable 
SET FOREIGN_KEY_CHECKS = 1; 

कोई विचार?

उत्तर

7

यदि आप truncate का उपयोग करना चाहते हैं, तो आपको एफके को हटाना होगा, क्योंकि एक लॉग ऑपरेशन नहीं है।

एफके के साथ delete का उपयोग कर सकते हैं लेकिन हटाएं एक लॉग इन ऑपरेशन है और इसमें अधिक समय लगता है।

+0

अच्छा बिंदु। मुझे यह नहीं पता था .... – user311509

3

अंत में शुरू करें (तालिकाएं केवल एफके हैं) और किसी भी अन्य कहानियों द्वारा संदर्भित नहीं है। जिन्हें आप छीन सकते हैं। फिर अपना रास्ता तैयार करें और हटाएं। यदि आप उचित क्रम में छंटनी/हटाते हैं तो आप बाधाओं का उल्लंघन नहीं करेंगे। या आप सभी संविधानों को छोड़ सकते हैं। टेबल को छोटा करें। फिर वापस दबाव जोड़ें।

संबंधित मुद्दे