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

PostgreSQL - तालिका नाम के रूप में गतिशील मान

आपको PL/PgSQL EXECUTE . का उपयोग करना होगा स्टेटमेंट, DO . के माध्यम से ब्लॉक या PL/PgSQL फ़ंक्शन (CREATE OR REPLACE FUNCTION ... LANGUAGE plpgsql ) डायनेमिक SQL PostgreSQL द्वारा उपयोग की जाने वाली सामान्य SQL बोली में समर्थित नहीं है, केवल प्रक्रियात्मक PL/PgSQL संस्करण में।

DO
$$
BEGIN
EXECUTE format('CREATE TABLE %I AS SELECT * FROM backup', 'backup_' || to_char(CURRENT_DATE,'yyyy-mm-dd'));
END;
$$ LANGUAGE plpgsql;

format(...) फ़ंक्शन का %I और %L प्रारूप-विनिर्देशक क्रमशः उचित पहचानकर्ता और शाब्दिक उद्धरण करते हैं।

शाब्दिक के लिए मैं EXECUTE ... USING . का उपयोग करने की सलाह देता हूं के बजाय format(...) %L . के साथ , लेकिन तालिका/स्तंभ नामों जैसे पहचानकर्ताओं के लिए प्रारूप %I पैटर्न वर्बोज़ का एक अच्छा संक्षिप्त विकल्प है quote_ident कॉल।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेल प्रवासन:PostgreSQL पर Bigint विफल हो रहा है?

  2. PostgreSQL को psycopg2 से कनेक्ट नहीं कर सकता

  3. पोस्टग्रेस्क्ल में काम नहीं कर रहा है

  4. Postgres . में होने वाले खंड में एक चुनिंदा कुल कॉलम उपनाम का जिक्र करते हुए

  5. जब एसएसएल समर्थन विदेशी डेटा रैपर का उपयोग करके संकलित नहीं किया जाता है तो एसएसएलमोड मान को पोस्टग्रेज करना अमान्य है