जैसा कि SQLite में अधिकांश चीजों के साथ होता है, डेटाबेस में अस्थायी तालिकाओं की सूची प्राप्त करने के एक से अधिक तरीके हैं।
यहाँ मैं SQLite में अस्थायी तालिकाओं को वापस करने के दो तरीके प्रस्तुत करता हूँ।
.टेबल्स कमांड
यदि आप SQLite कमांड लाइन शेल से परिचित हैं, तो आप शायद .tables
के बारे में जानते होंगे डॉट कमांड। यह आदेश किसी दिए गए पैटर्न से मेल खाने वाली सभी तालिकाओं को सूचीबद्ध करता है (या केवल सभी टेबल, यदि कोई पैटर्न नहीं दिया गया है)। इसमें अस्थायी टेबल शामिल हैं।
उदाहरण:
CREATE TEMP TABLE TempProducts (id, name, price);
.tables
परिणाम:
Products temp.TempProducts vProducts
इस मामले में, मेरे पास एक स्थायी तालिका है (Products
), एक दृश्य (vProducts
), और एक अस्थायी तालिका (temp.TempProducts
)।
तो आप देख सकते हैं कि अस्थायी और स्थायी दोनों टेबल वापस आ गए हैं। यदि आपकी अस्थायी तालिकाएँ एक निश्चित नामकरण परंपरा का उपयोग करती हैं, जैसे कि केवल अस्थायी तालिकाओं के लिए आरक्षित उपसर्ग, तो आप केवल अस्थायी तालिकाओं को पुनः प्राप्त करने के लिए पैटर्न मिलान का उपयोग कर सकते हैं।
उदाहरण:
.tables temp%
परिणाम:
temp.TempProducts
हालाँकि, नामकरण परंपराएँ तभी तक अच्छी होती हैं जब तक हर कोई उनका अनुसरण करता है।
यदि आप अपने परिणामों में स्थायी तालिकाओं को वापस नहीं करना चाहते हैं, तो संभवतः आप sqlite_temp_master से पूछताछ करना बेहतर समझते हैं तालिका (नीचे)।
sqlite_temp_master तालिका
SQLite में एक sqlite_temp_master है तालिका जिसमें अस्थायी तालिकाएँ और उनके सूचकांक और ट्रिगर होते हैं। यह तालिका केवल उस एप्लिकेशन को दिखाई देती है जिसने अस्थायी तालिका बनाई है।
आप इस तालिका को इस प्रकार क्वेरी कर सकते हैं:
SELECT name FROM sqlite_temp_master;
परिणाम:
TempProducts
इस उदाहरण में मैं केवल तालिका का नाम लौटाता हूं, लेकिन बेझिझक एक तारांकन चिह्न (*
.) का उपयोग करता हूं ) सभी कॉलम वापस करने के लिए।
जैसा कि बताया गया है, इस तालिका में स्थायी टेबल शामिल नहीं हैं। यदि आपको अस्थायी और स्थायी दोनों तालिकाओं को वापस करने की आवश्यकता है, और आप .temp
. का उपयोग नहीं कर सकते हैं , आप sqlite_master . को शामिल कर सकते हैं आपकी क्वेरी में तालिका।
उदाहरण:
SELECT name FROM
(SELECT * FROM sqlite_master UNION ALL
SELECT * FROM sqlite_temp_master)
WHERE type='table'
ORDER BY name;
परिणाम:
Products TempProducts
यदि आप विचारों को शामिल करना चाहते हैं, तो यह करें:
SELECT name FROM
(SELECT * FROM sqlite_master UNION ALL
SELECT * FROM sqlite_temp_master)
WHERE type in ('table', 'view')
ORDER BY name;
परिणाम:
Products TempProducts vProducts