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

PostgreSQL 9.3 ट्रिगर फ़ंक्शन पैरामीटरयुक्त नाम के साथ तालिका में सम्मिलित करने के लिए

CREATE FUNCTION log_roll_test()
  RETURNS trigger AS
$func$
BEGIN
   EXECUTE format('INSERT INTO %I SELECT ($1).*'
                , to_char(NEW.updt_ts, '"log"WW'))   -- child table name
   USING NEW;
   RETURN NULL;
END
$func$ LANGUAGE plpgsql;

आप NEW reference का संदर्भ नहीं दे सकते क्वेरी स्ट्रिंग के अंदर। NEW फंक्शन बॉडी में दिखाई देता है, लेकिन EXECUTE . के अंदर नहीं वातावरण। सबसे अच्छा समाधान USING . में मानों को पास करना है खंड।

मैंने समतुल्य to_char(NEW.updt_ts, '"log"WW') को भी प्रतिस्थापित किया तालिका के नाम के लिए। to_char() यहाँ तेज़ और सरल है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं बाहरी क्लाइंट द्वारा प्रदान की गई मनमानी JSONB क्वेरी स्ट्रिंग के साथ SQL इंजेक्शन को कैसे रोक सकता हूं?

  2. मेरी पोस्टगिस ज्यामिति क्षेत्र पर सूचकांक का उपयोग क्यों नहीं करती है?

  3. PostgreSQL डेटा स्रोत को WildFly 9.0 में कैसे जोड़ें?

  4. Homebrew का उपयोग करके [ईमेल संरक्षित] के केजी इंस्टॉलेशन में पोस्टगिस कैसे स्थापित करें?

  5. ORDBMS में "O":PostgreSQL इनहेरिटेंस