आप शायद CREATE TABLE AS
- TEMPORARY
. के लिए भी काम करता है (TEMP
) टेबल:
CREATE TEMP TABLE temp1 AS
SELECT dataid
, register_type
, timestamp_localtime
, read_value_avg
FROM rawdata.egauge
WHERE register_type LIKE '%gen%'
ORDER BY dataid, timestamp_localtime;
यह एक अस्थायी तालिका बनाता है और उसमें डेटा कॉपी करता है। एक स्थिर स्नैपशॉट डेटा का, आप पर ध्यान दें। यह एक नियमित तालिका की तरह है, लेकिन अगर temp_buffers
. तो RAM में रहता है काफी ऊंचा रखा गया है। यह केवल वर्तमान सत्र . में ही दिखाई देता है और उसके अंत में मर जाता है। जब ON COMMIT DROP
with के साथ बनाया गया हो यह लेनदेन . के अंत में मर जाता है ।
डिफ़ॉल्ट स्कीमा खोज पथ में अस्थायी तालिकाएं सबसे पहले आती हैं , उसी नाम की अन्य दृश्यमान तालिकाओं को छिपाना जब तक कि स्कीमा-योग्य न हो:
- खोज_पथ पहचानकर्ता संकल्प और "वर्तमान स्कीमा" को कैसे प्रभावित करता है
यदि आप गतिशील चाहते हैं , आप CREATE VIEW
. की तलाश में होंगे - एक पूरी तरह से अलग कहानी।
SQL मानक भी परिभाषित करता है, और Postgres भी समर्थन करता है:<स्ट्राइक> SELECT INTO
स्ट्राइक> . लेकिन इसके उपयोग को हतोत्साहित किया जाता है:
CREATE TABLE AS
. का उपयोग करना सबसे अच्छा है इस उद्देश्य के लिए नए कोड में।
वास्तव में दूसरे सिंटैक्स संस्करण की कोई आवश्यकता नहीं है, और SELECT INTO
plpgsql
. में असाइनमेंट के लिए उपयोग किया जाता है , जहां SQL सिंटैक्स फलस्वरूप संभव नहीं है।
संबंधित:
- दो तालिकाओं को एक नई तालिका में संयोजित करें ताकि दूसरी तालिका की चुनिंदा पंक्तियों पर ध्यान न दिया जाए
- त्रुटि:एक के बाद एक डिफ़ॉल्ट मान वाले इनपुट पैरामीटर में पोस्टग्रेज़ में भी डिफ़ॉल्ट होना चाहिए
CREATE TABLE LIKE (...)
केवल संरचना की प्रतिलिपि बनाता है किसी अन्य तालिका से और कोई डेटा नहीं:
LIKE
खंड एक तालिका निर्दिष्ट करता है जिससे नई तालिका स्वचालित रूप से सभी कॉलम नामों, उनके डेटा प्रकारों और उनकी गैर-शून्य बाधाओं की प्रतिलिपि बनाती है।
यदि आपको केवल एक क्वेरी के उद्देश्य के लिए "अस्थायी" तालिका की आवश्यकता है (और फिर इसे छोड़ दें) एक "व्युत्पन्न तालिका" CTE या सबक्वेरी में काफी कम ओवरहेड आता है:
- पोस्टग्रेस्क्ल में क्वेरी की निष्पादन योजना को मैन्युअल रूप से बदलें?
- पोस्टग्रेएसक्यूएल में दो चुनिंदा प्रश्नों को मिलाएं
- गणना चयनित मान का पुन:उपयोग करें
- एकल क्वेरी में कई सीटीई
- दूसरे sql के परिणामों के साथ अपडेट करें