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

EXECUTE FORMAT का उपयोग कैसे करें ... पोस्टग्रेज फ़ंक्शन में उपयोग करना

Postgres 9.0 या बाद के संस्करण में आपका कार्य इस तरह दिख सकता है:

CREATE OR REPLACE FUNCTION dummytest_insert_trigger()
  RETURNS trigger AS
$func$
DECLARE
   v_partition_name text := quote_ident('dummyTest');  -- assign at declaration
BEGIN
   IF NEW.datetime IS NOT NULL THEN
      EXECUTE 
      'INSERT INTO ' || v_partition_name || ' VALUES ($1,$2)'
      USING NEW.id, NEW.datetime;              
   END IF;                    

   RETURN NULL;  -- You sure about this?
END
$func$  LANGUAGE plpgsql;

के बारे में RETURN NULL :

  • पोस्टग्रेएसक्यूएल के ट्रिगर से पहले में परिणाम को अनदेखा करने के लिए?

मैं मिश्रित केस पहचानकर्ताओं का उपयोग न करने की सलाह दूंगा। format( .. %I ..) . के साथ या quote_ident() , आपको "dummyTest" . नाम की एक टेबल मिलेगी , जिसे आपको इसके शेष अस्तित्व के लिए दोहरा उद्धरण देना होगा। संबंधित:

  • क्या PostgreSQL कॉलम नाम केस-संवेदी हैं?

इसके बजाय लोअर केस का प्रयोग करें:

quote_ident('dummytest')

EXECUTE . के साथ डायनेमिक 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. 3 मिलियन पंक्तियों के साथ PostgreSQL डेटाबेस पर धीमी सरल अद्यतन क्वेरी

  2. पोस्टग्रेज में अधिकतम कनेक्शन कैसे बढ़ाएं?

  3. मैं PostgreSQL में किसी विशेष स्कीमा के डेटाबेस में संग्रहीत सभी कार्यों की सूची कैसे प्राप्त कर सकता हूं?

  4. धाराप्रवाह NHibernate और PostgreSQL, SchemaMetadataUpdater.QuoteTableAndColumns - System.NotSupportedException:निर्दिष्ट विधि समर्थित नहीं है

  5. postgresql वापसी 0 यदि लौटाया गया मान शून्य है