SQLite में एक टेबल ड्रॉप करने के लिए, DROP TABLE
. का उपयोग करें बयान।
इस कथन को चलाने से तालिका डेटाबेस से हट जाती है। यह डेटाबेस स्कीमा और डिस्क फ़ाइल से पूरी तरह से हटा दिया गया है। इसलिए तालिका को पुनर्प्राप्त नहीं किया जा सकता है। तालिका से जुड़े सभी सूचकांक और ट्रिगर भी हटा दिए जाते हैं।
एक बुनियादी DROP TABLE
कथन
सबसे पहले, आइए हमारे डेटाबेस में तालिकाओं की समीक्षा करें:
sqlite> .tables Albums Albums1 Albums2 Artists
हमारे पास हमारे पिछले अभ्यासों से कुछ अतिरिक्त टेबल हैं, तो चलिए एक छोड़ देते हैं।
निम्न कोड Albums1 को हटा देता है तालिका:
DROP TABLE Albums1;
उस कोड को चलाने के बाद, हम अपनी तालिकाओं की फिर से समीक्षा कर सकते हैं:
sqlite> .tables Albums Albums2 Artists
तालिका हटा दी गई है।
जांचें कि तालिका मौजूद है या नहीं
आप IF EXISTS
. का उपयोग कर सकते हैं यह जाँचने के लिए कि SQLite इसे छोड़ने का प्रयास करने से पहले तालिका मौजूद है या नहीं।
ऐसा करने से ऐसी किसी भी त्रुटि से बचा जा सकता है जो सामान्य रूप से उत्पन्न होती यदि तालिका मौजूद नहीं है।
सबसे पहले, आइए एक गैर-मौजूद तालिका को बिना छोड़ने का प्रयास करें IF EXISTS
. का उपयोग करके खंड। आइए जिसे हमने अभी छोड़ा है उसे छोड़ने का प्रयास करें:
DROP TABLE Albums1;
इसका परिणाम निम्न होता है:
sqlite> DROP TABLE Album1; Error: no such table: Album1
ठीक है, तो चलिए इसे फिर से आजमाते हैं, लेकिन इस बार IF EXISTS
. के साथ खंड:
DROP TABLE IF EXISTS Album1;
परिणाम:
sqlite> DROP TABLE IF EXISTS Album1; sqlite>
तो कुछ नहीं हुआ। महत्वपूर्ण रूप से, कोई त्रुटि नहीं हुई।
प्राथमिक कुंजियों वाली तालिका छोड़ें
तो क्या होता है यदि हम प्राथमिक कुंजियों वाली तालिका को छोड़ने का प्रयास करते हैं, और विदेशी कुंजियाँ उन्हें संदर्भित करती हैं?
आइए इसे आजमाएं:
DROP TABLE Artists;
परिणाम:
sqlite> DROP TABLE Artists; Error: FOREIGN KEY constraint failed
जैसा कि अपेक्षित था, यह विफल रहा। इसलिए यदि आपको कोई तालिका छोड़ने की आवश्यकता है, तो आपको पहले किसी भी संबद्ध तालिका को छोड़ना होगा।
SQLite वास्तव में किसी तालिका को छोड़ने से पहले डेटा को हटाने का प्रयास करता है। यह डिलीट एक्शन है जिसके कारण कोई भी विदेशी कुंजी बाधा जांच होती है।
SQLite डिलीट (और बाद में ड्रॉप) ऑपरेशन करने से पहले टेबल से जुड़े किसी भी इंडेक्स या ट्रिगर को भी ड्रॉप कर देता है।