PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

SQL में अस्थायी तालिकाएँ बनाना

आप शायद 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 के परिणामों के साथ अपडेट करें


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज में क्रिएटबी के साथ समस्याएं

  2. WHERE क्लॉज में एक ही कॉलम को कई बार इस्तेमाल करना

  3. pg_escape_string वास्तव में क्या करता है?

  4. PostgreSQL विशेषाधिकार और सुरक्षा - सार्वजनिक योजना को बंद करना

  5. PHP में डेटाटाइम से संबंधित संचालन करना