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

Oracle 11g से Postgresql 8.4 में माइग्रेट करना ट्रिगर

Postgres में ट्रिगर सीधे ट्रिगर कोड प्रदान नहीं करते हैं, लेकिन एक ट्रिगर फ़ंक्शन call को कॉल करते हैं , जिसे किसी भी संख्या में ट्रिगर से कॉल किया जा सकता है, हालांकि अक्सर उन्हें एक विशेष टेबल पर एक विशेष घटना के लिए अनुकूलित किया जाता है।

ट्रिगर फ़ंक्शन:

CREATE OR REPLACE FUNCTION trg_some_tbl_foo()
  RETURNS trigger AS
$func$
BEGIN

INSERT INTO some_tbl(key, name, describe)   -- or some_other_tbl?
VALUES (OLD.key, OLD.name, OLD.describe);

RETURN OLD;

END
$func$ LANGUAGE plpgsql 

ट्रिगर:

CREATE TRIGGER foo         -- not:  "CREATE OR REPLACE" !
AFTER UPDATE OR DELETE ON some_tbl
FOR EACH ROW EXECUTE PROCEDURE trg_some_tbl_foo()
  • इसे एक AFTER बनाएं सरल करने के लिए ट्रिगर। ए BEFORE ट्रिगर को RETURN NEW अपडेट काम करने के लिए, लेकिन NEW DELETE . में दिखाई नहीं दे रहा है चालू कर देना। तो आपको चाहिए IF TG_OP = ... आदि.

  • सतत INSERT . के लिए हमेशा एक लक्ष्य सूची प्रदान करें बयान। यह Oracle ट्रिगर में उतना ही बुरा है।

  • आपके पास संभवत:serial . के साथ एक तालिका है कॉलम। बस इंसर्ट में इसका उल्लेख न करें, अनुक्रम से अगली आईडी स्वचालित रूप से सम्मिलित हो जाती है।

SO पर यहाँ कई कोड उदाहरण हैं।




  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 मान सेट करने के लिए ट्रिगर डालें

  2. PostgreSQL के लिए मल्टी-क्लाउड फुल डेटाबेस क्लस्टर फ़ेलओवर विकल्प

  3. विभिन्न समय क्षेत्रों के साथ पार्सिंग तिथि

  4. pyodbc को Postgres . से कनेक्ट करें

  5. रेल 5 form_for चेकबॉक्स सरणी के साथ