यह या तो संभव postgres
आप ठीक कह रहे हैं में एक भी आदेश के साथ सभी तालिकाओं से सभी पंक्तियों को नष्ट करने के लिए है, जवाब नहीं
आपको लगता है कि नष्ट करेगा विदेशी कुंजी व्यापक परिभाषित कर सकते हैं है यदि "पैरेंट" हटा दिया गया है तो सभी संदर्भ पंक्तियां। लेकिन यह विदेशी कुंजी का गुण है, कुछ भी आप DELETE कथन
के साथ निर्दिष्ट नहीं कर सकते हैं - वाह।
क्या है कि माना जाता मतलब है?
दूसरे विचार पर: आप क्या हासिल करने की कोशिश कर रहे हैं?
मैं संदेह है कि आप "रीसेट" करने के लिए कोशिश कर रहे हैं जैसे है एक परीक्षण डेटाबेस। उस मामले में PostgreSQL दृष्टिकोण होगा:
- एक डेटाबेस है कि सब कुछ (टेबल, दृश्य, अनुक्रमित आदि) शामिल हैं आप एक नया डेटाबेस में की जरूरत है (इसे कहते जैसे my_template)
- अपने वर्तमान परीक्षण रीसेट करने के लिए बनाएं डीबी, परीक्षण डेटाबेस
CREATE DATABASE testdb TEMPLATE my_template
नव निर्मित testdb का उपयोग कर सभी तालिकाओं my_template में परिभाषित करना होगा फिर से बनाने के एक DROP DATABASE testdb
और फिर। यही कारण है कि शायद एक बहुत सभी पंक्तियों को हटाने की तुलना में तेजी है।
स्रोत
2010-08-19 17:17:34
आप सही हैं, वही है जो मैं करने की कोशिश कर रहा था, और मैं निराश हो रहा था कि पोस्टग्रेज़ के पास डेटा को जल्दी से साफ़ करने का कोई आसान तरीका नहीं था। मैं एक टेम्पलेट बनाउंगा - मदद के लिए धन्यवाद। – AP257
जैसा कि आप उम्मीद करते हैं कि "सबकुछ से सब कुछ हटाएं" कथन का प्रकार मैं सोच रहा हूं क्यों? कोई डेटाबेस जो मुझे पता है इसका समर्थन करता है। –
ठीक है, मुझे वास्तव में क्या पसंद है एक डेली कैस्केड है। उस की अनुपस्थिति में, सब कुछ से हटाएं एक स्वीकार्य विकल्प होगा। लेकिन दर्द का थोड़ा सा हिस्सा नहीं है! – AP257