ड्रॉप बनाम ट्रंकट

ड्रॉप एंड ट्रंकट दो SQL (स्ट्रक्चर्ड क्वेरी लैंग्वेज) स्टेटमेंट हैं जो डेटाबेस मैनेजमेंट सिस्टम में उपयोग किए जाते हैं, जहां हम डेटाबेस से डेटा रिकॉर्ड को निकालना चाहते हैं। ड्रॉप और ट्रंकट स्टेटमेंट दोनों एक टेबल और संबंधित एसक्यूएल स्टेटमेंट में पूरे डेटा को हटा देते हैं। डिलीट ऑपरेशन इस मामले में प्रभावी नहीं है क्योंकि यह ड्रॉप और ट्रंकट की तुलना में अधिक स्टोरेज स्पेस का उपयोग करता है।

यदि हम किसी डेटाबेस में तालिका को उसके सभी डेटा के साथ पूरी तरह से छोड़ना चाहते हैं, तो SQL हमें ड्रॉप स्टेटमेंट का उपयोग करके आसानी से यह करने की अनुमति देता है। ड्रॉप कमांड एक डीडीएल (डेटा डेफिनिशन लैंग्वेज) कमांड है, और इसका इस्तेमाल मौजूदा डेटाबेस, टेबल, इंडेक्स या व्यू को नष्ट करने के लिए किया जा सकता है। यह एक तालिका में पूरी जानकारी, साथ ही डेटाबेस से तालिका संरचना को हटा देता है। इसके अलावा, हम केवल एक तालिका में सभी डेटा से छुटकारा पाने की इच्छा कर सकते हैं, लेकिन तालिका के बिना, और हम इस तरह के परिदृश्य में SQL में Truncate कथन का उपयोग कर सकते हैं। Truncate भी एक DDL कमांड है और यह एक तालिका में सभी पंक्तियों को समाप्त करता है लेकिन भविष्य में उपयोग के लिए तालिका परिभाषा को समान रखता है।

ड्रॉप कमांड

जैसा कि पहले उल्लेख किया गया है, ड्रॉप कमांड टेबल की परिभाषा और उसके सभी डेटा, अखंडता बाधाओं, अनुक्रमित, ट्रिगर्स और एक्सेस विशेषाधिकार को हटा देता है, जो उस विशेष टेबल पर बनाया गया था। तो यह डेटाबेस से मौजूदा ऑब्जेक्ट को पूरी तरह से छोड़ देता है, और अन्य तालिकाओं के लिए भी संबंध कमांड निष्पादित करने के बाद मान्य नहीं होंगे। इसके अलावा यह डेटा डिक्शनरी से तालिका के बारे में सभी जानकारी को हटा देता है। तालिका पर ड्रॉप स्टेटमेंट का उपयोग करने के लिए विशिष्ट वाक्यविन्यास निम्नलिखित है।

ड्रॉप तालिका

हमें बस उस टेबल नाम को बदलना होगा जिसे हम ड्रॉप कमांड के उपरोक्त उदाहरण में डेटाबेस से निकालना चाहते हैं।

यह इंगित करना महत्वपूर्ण है कि ड्रॉप स्टेटमेंट का उपयोग किसी तालिका को हटाने के लिए नहीं किया जा सकता है, जिसे पहले से ही एक विदेशी कुंजी बाधा द्वारा संदर्भित किया गया है। उस मामले में, संदर्भित विदेशी कुंजी बाधा, या उस विशेष तालिका को पहले छोड़ दिया जाना चाहिए। इसके अलावा, ड्रॉप स्टेटमेंट को डेटाबेस में सिस्टम टेबल पर लागू नहीं किया जा सकता है।

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

ट्रंकट कमांड

ट्रंकट कमांड एक डीडीएल कमांड है, और यह किसी भी उपयोगकर्ता निर्दिष्ट शर्तों के बिना तालिका में सभी पंक्तियों को हटा देता है, और तालिका द्वारा उपयोग किए जाने वाले स्थान को जारी करता है, लेकिन इसके स्तंभों, अनुक्रमित और बाधाओं के साथ तालिका संरचना समान रहती है। ट्रंकैट तालिका डेटा को संग्रहीत करने के लिए उपयोग किए जाने वाले डेटा पृष्ठों को डील करके तालिका से डेटा को समाप्त कर देता है, और केवल लेन-देन लॉग में इन पृष्ठ डीलक्लोशंस को रखा जाता है। तो यह अन्य संबंधित SQL आदेशों की तुलना में कम लेनदेन लॉग संसाधनों और सिस्टम संसाधनों का उपयोग करता है। इसलिए Truncate दूसरों की तुलना में थोड़ा तेज़ बयान है। ट्रंकट कमांड के लिए विशिष्ट सिंटैक्स निम्नलिखित है।

ट्रिब्यूट टेबल

हमें तालिका के नाम को बदलना चाहिए, जिससे हम उपरोक्त सिंटैक्स में संपूर्ण डेटा को निकालना चाहते हैं।

Truncate का उपयोग उस मेज पर नहीं किया जा सकता है जिसे एक विदेशी कुंजी बाधा द्वारा संदर्भित किया गया है। यह काम करने से पहले स्वचालित रूप से एक प्रतिबद्ध का उपयोग करता है और बाद में एक और प्रतिबद्ध है ताकि लेनदेन का रोलबैक असंभव है, और कोई ट्रिगर नहीं निकाल दिया जाता है। यदि हम तालिका का पुन: उपयोग करना चाहते हैं, तो हमें केवल डेटाबेस में मौजूदा तालिका परिभाषा तक पहुंचने की आवश्यकता है।

ड्रॉप और ट्रंकट के बीच अंतर क्या है?

ड्रॉप और ट्रंकट कमांड दोनों डीडीएल कमांड और ऑटो कमिट स्टेटमेंट हैं, इसलिए इन कमांड का उपयोग करके किए गए लेन-देन को वापस नहीं किया जा सकता है।

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

यदि एक तालिका को गिरा दिया जाता है, तो अन्य तालिकाओं के संबंध अब मान्य नहीं होंगे, और अखंडता बाधाएं और पहुंच विशेषाधिकार भी हटा दिए जाएंगे। इसलिए यदि तालिका को पुन: उपयोग करने की आवश्यकता है, तो इसे रिश्तों, अखंडता की बाधाओं, और एक्सेस विशेषाधिकार के साथ पुनर्निर्माण करना होगा। लेकिन अगर किसी तालिका को काट दिया जाता है, तो तालिका संरचना और उसके अवरोध भविष्य के उपयोग के लिए बने रहते हैं, और इसलिए, पुन: उपयोग के लिए उपरोक्त में से किसी भी मनोरंजन की आवश्यकता नहीं होती है।

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