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

PostgreSQL:यदि मौजूद नहीं है तो तालिका बनाएं AS

CREATE TABLE AS को सामान्य CREATE TABLE से अलग स्टेटमेंट माना जाता है, और पोस्टग्रेज वर्जन 9.5 तक (चेंजलॉग प्रविष्टि देखें) एक IF NOT EXISTS का समर्थन नहीं करता है खंड। (आपके द्वारा उपयोग किए जा रहे संस्करण के लिए मैनुअल के सही संस्करण को देखना सुनिश्चित करें।)

हालांकि काफी लचीला नहीं है, CREATE TABLE ... LIKE वाक्य रचना कुछ स्थितियों में एक विकल्प हो सकता है; इसकी संरचना (और सामग्री) को SELECT . से लेने के बजाय कथन, यह किसी अन्य तालिका या दृश्य की संरचना की प्रतिलिपि बनाता है।

नतीजतन, आप कुछ इस तरह लिख सकते हैं (अनचाहे); यदि तालिका पहले से ही भरी हुई है, तो अंतिम प्रविष्टि कुछ भी नहीं करने का एक गन्दा तरीका है:

CREATE OR REPLACE VIEW source_data AS SELECT * FROM foo NATURAL JOIN bar;

CREATE TABLE IF NOT EXISTS snapshot LIKE source_data;

INSERT INTO snapshot
SELECT * FROM source_data
WHERE NOT EXISTS ( SELECT * FROM snapshot );

वैकल्पिक रूप से, यदि आप पिछले डेटा (जैसे एक परित्यक्त अस्थायी तालिका) को छोड़ना चाहते हैं, तो आप सशर्त रूप से पुरानी तालिका को छोड़ सकते हैं, और बिना शर्त नई तालिका बना सकते हैं:

DROP TABLE IF EXISTS temp_stuff;

CREATE TEMPORARY TABLE temp_stuff AS SELECT * FROM foo NATURAL JOIN bar;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Heroku psql:FATAL:शेष कनेक्शन स्लॉट गैर-प्रतिकृति सुपरयूज़र कनेक्शन के लिए आरक्षित हैं

  2. PostgreSQL डेटाबेस को SQLServer एक में कैसे माइग्रेट करें?

  3. Django माइग्रेशन के साथ हटाए गए तालिका को फिर से कैसे बनाएं?

  4. PostgreSQL:कमांड लाइन के माध्यम से PostgreSQL डेटाबेस को छोड़ें

  5. Django स्थिरता विफल रहता है, DatabaseError बताते हुए:प्रकार वर्ण भिन्न के लिए बहुत लंबा मान (50)