एसक्यूएल - अस्थाई टेबल्स

अस्थाई टेबल्स क्या हैं?

आरडीबीएमएस हैं, जो अस्थायी तालिकाओं का समर्थन करते हैं। टेम्‍परेरी टेबल्‍स एक बेहतरीन फीचर है जो आपको देता हैstore and process intermediate results उसी चयन का उपयोग करके, अपडेट करें और उन क्षमताओं से जुड़ें, जिनका उपयोग आप विशिष्ट SQL सर्वर तालिकाओं के साथ कर सकते हैं।

अस्थायी डेटा रखने के लिए कुछ मामलों में अस्थायी तालिकाएँ बहुत उपयोगी हो सकती हैं। अस्थायी तालिकाओं के लिए ज्ञात सबसे महत्वपूर्ण बात यह है कि मौजूदा ग्राहक सत्र समाप्त होने पर उन्हें हटा दिया जाएगा।

अस्थायी तालिकाएँ MySQL संस्करण 3.23 में उपलब्ध हैं। यदि आप 3.23 से पुराने संस्करण MySQL का उपयोग करते हैं, तो आप अस्थायी तालिकाओं का उपयोग नहीं कर सकते, लेकिन आप उपयोग कर सकते हैंheap tables

जैसा कि पहले कहा गया था, अस्थायी टेबल केवल तब तक चलेगी जब तक कि सत्र जीवित है। यदि आप एक PHP स्क्रिप्ट में कोड चलाते हैं, तो स्क्रिप्ट निष्पादित होने पर अस्थायी तालिका स्वचालित रूप से नष्ट हो जाएगी। यदि आप MySQL क्लाइंट प्रोग्राम के माध्यम से MySQL डेटाबेस सर्वर से जुड़े हैं, तो अस्थायी टेबल तब तक मौजूद रहेगी जब तक आप क्लाइंट को बंद नहीं करते या मैन्युअल रूप से टेबल को नष्ट नहीं करते।

उदाहरण

यहां एक उदाहरण है जो आपको एक अस्थायी तालिका का उपयोग दिखा रहा है।

mysql> CREATE TEMPORARY TABLE SALESSUMMARY (
   -> product_name VARCHAR(50) NOT NULL
   -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
   -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO SALESSUMMARY
   -> (product_name, total_sales, avg_unit_price, total_units_sold)
   -> VALUES
   -> ('cucumber', 100.25, 90, 2);

mysql> SELECT * FROM SALESSUMMARY;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)

जब आप एक SHOW TABLES कमांड जारी करते हैं, तो आपकी अस्थायी तालिका सूची में सूचीबद्ध नहीं होगी। अब, यदि आप MySQL सत्र से बाहर निकलते हैं और फिर एक SELECT कमांड जारी करते हैं, तो आपको डेटाबेस में उपलब्ध कोई डेटा नहीं मिलेगा। यहां तक ​​कि आपकी अस्थायी तालिका भी मौजूद नहीं होगी।

अस्थाई टेबलों को गिराना

जब आपका डेटाबेस कनेक्शन समाप्त हो जाता है तो डिफ़ॉल्ट रूप से, सभी अस्थायी तालिकाएँ MySQL द्वारा हटा दी जाती हैं। फिर भी अगर आप उन्हें बीच में हटाना चाहते हैं, तो आप ए जारी करके ऐसा कर सकते हैंDROP TABLE आदेश।

निम्नलिखित एक अस्थायी तालिका छोड़ने पर एक उदाहरण है।

mysql> CREATE TEMPORARY TABLE SALESSUMMARY (
   -> product_name VARCHAR(50) NOT NULL
   -> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
   -> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
   -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO SALESSUMMARY
   -> (product_name, total_sales, avg_unit_price, total_units_sold)
   -> VALUES
   -> ('cucumber', 100.25, 90, 2);

mysql> SELECT * FROM SALESSUMMARY;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber     |      100.25 |          90.00 |                2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)
mysql> DROP TABLE SALESSUMMARY;
mysql>  SELECT * FROM SALESSUMMARY;
ERROR 1146: Table 'TUTORIALS.SALESSUMMARY' doesn't exist