Postgresql ट्रिगर क्या हैं?
PostgreSQL ट्रिगर एक फ़ंक्शन है जो डेटाबेस ऑब्जेक्ट पर डेटाबेस इवेंट होने पर स्वचालित रूप से चालू हो जाता है। उदाहरण के लिए, एक मेज।
ट्रिगर को सक्रिय करने वाले डेटाबेस ईवेंट के उदाहरणों में INSERT, UPDATE, DELETE आदि शामिल हैं। इसके अलावा, जब आप किसी तालिका के लिए ट्रिगर बनाते हैं, तो उस तालिका को हटाए जाने पर ट्रिगर स्वचालित रूप से हटा दिया जाएगा।
इस PostgreSQL ट्यूटोरियल में, आप निम्नलिखित सीखेंगे:
- Postgresql ट्रिगर क्या हैं?
- POSRGREQL में ट्रिगर का उपयोग कैसे किया जाता है?
- ट्रिगर बनाना
- PgAdmin का उपयोग करना
- ट्रिगर खोना
POSRGREQL में ट्रिगर का उपयोग कैसे किया जाता है?
एक ट्रिगर को इसके निर्माण के दौरान FOR ROW ऑपरेटर के साथ चिह्नित किया जा सकता है। इस तरह के एक ट्रिगर को ऑपरेशन द्वारा संशोधित प्रत्येक पंक्ति के लिए एक बार बुलाया जाएगा। इसके निर्माण के दौरान FOR EACH STATEMENT संचालक के साथ एक ट्रिगर भी चिह्नित किया जा सकता है। इस ट्रिगर को एक विशिष्ट ऑपरेशन के लिए केवल एक बार निष्पादित किया जाएगा।
ट्रिगर बनाना
ट्रिगर बनाने के लिए, हम क्रिएट ट्राइगर फ़ंक्शन का उपयोग करते हैं। यहाँ फ़ंक्शन के लिए सिंटैक्स है:
CREATE TRIGGER trigger-name [BEFORE|AFTER|INSTEAD OF] event-nameON table-name[-- Trigger logic];
ट्रिगर-नाम ट्रिगर का नाम है।
BEFORE, AFTER और INSTEAD ऐसे कीवर्ड हैं जो निर्धारित करते हैं कि ट्रिगर कब लागू होगा।
ईवेंट-नाम उस ईवेंट का नाम है, जो ट्रिगर का कारण होगा। यह INSERT, UPDATE, DELETE आदि हो सकते हैं।
तालिका-नाम उस तालिका का नाम है जिस पर ट्रिगर बनाना है।
यदि ट्रिगर INSERT ऑपरेशन के लिए बनाया जाना है, तो हमें ON कॉलम-नाम पैरामीटर जोड़ना होगा।
निम्न सिंटैक्स इसे प्रदर्शित करता है:
CREATE TRIGGER trigger-name AFTER INSERT ON column-nameON table-name[-- Trigger logic];
उदाहरण के लिए:
हम नीचे दी गई मूल्य तालिका का उपयोग करेंगे:
कीमत:
हमें एक और तालिका बनाएँ, Price_Audits, जहाँ हम मूल्य तालिका में किए गए परिवर्तनों को लॉग करेंगे:
CREATE TABLE Price_Audits (book_id INT NOT NULL,entry_date text NOT NULL);
अब हम एक नया फ़ंक्शन परिभाषित कर सकते हैं जिसका नाम लेखा परीक्षा है:
CREATE OR REPLACE FUNCTION auditfunc() RETURNS TRIGGER AS $my_table$BEGININSERT INTO Price_Audits(book_id, entry_date) VALUES (new.ID, current_timestamp);RETURN NEW;END;$my_table$ LANGUAGE plpgsql;
उपरोक्त फ़ंक्शन नई पंक्ति आईडी और रिकॉर्ड बनाए जाने के समय Price_Audits तालिका में एक रिकॉर्ड सम्मिलित करेगा।
अब हमारे पास ट्रिगर फ़ंक्शन है, हमें इसे अपने मूल्य तालिका में बांधना चाहिए। हम ट्रिगर को price_trigger नाम देंगे। एक नया रिकॉर्ड बनने से पहले, परिवर्तनों को लॉग करने के लिए ट्रिगर फ़ंक्शन को स्वचालित रूप से आमंत्रित किया जाएगा। यहाँ ट्रिगर है:
CREATE TRIGGER price_trigger AFTER INSERT ON PriceFOR EACH ROW EXECUTE PROCEDURE auditfunc();
आइए मूल्य तालिका में एक नया रिकॉर्ड डालें:
INSERT INTO PriceVALUES (3, 400);
अब जब हमने मूल्य तालिका में एक रिकॉर्ड डाला है, तो Price_Audit तालिका में एक रिकॉर्ड भी डाला जाना चाहिए। यह उस मूल्य के ट्रिगर के परिणामस्वरूप होगा जो हमने मूल्य तालिका पर बनाया है। आइए हम इसकी जाँच करें:
SELECT * FROM Price_Audits;
यह निम्नलिखित लौटाएगा:
ट्रिगर ने सफलतापूर्वक काम किया।
ट्रिगर को सूचीबद्ध करता है
PostgreSQL में आपके द्वारा बनाए गए सभी ट्रिगर pg_trigger तालिका में संग्रहीत किए जाते हैं। आपके पास डेटाबेस पर मौजूद ट्रिगर्स की सूची देखने के लिए, नीचे दिखाए अनुसार SELECT कमांड चलाकर तालिका को क्वेरी करें:
SELECT tgname FROM pg_trigger;
यह निम्नलिखित देता है:
Pg_trigger तालिका का tgname कॉलम ट्रिगर के नाम को दर्शाता है।
ट्रिगर खोना
PostgreSQL ट्रिगर छोड़ने के लिए, हम निम्नलिखित सिंटैक्स के साथ DROP TRIGGER स्टेटमेंट का उपयोग करते हैं:
DROP TRIGGER [IF EXISTS] trigger-nameON table-name [ CASCADE | RESTRICT ];
ट्रिगर-नाम पैरामीटर उस ट्रिगर के नाम को दर्शाता है जिसे हटाना है।
तालिका-नाम उस तालिका के नाम को दर्शाता है जिसमें से ट्रिगर को हटाना है।
IF EXISTS क्लॉज मौजूद ट्रिगर को हटाने का प्रयास करता है। यदि आप IF EXISTS क्लॉज का उपयोग किए बिना मौजूद ट्रिगर को हटाने का प्रयास करते हैं, तो आपको एक त्रुटि मिलेगी।
CASCADE विकल्प आपको स्वचालित रूप से ट्रिगर पर निर्भर सभी वस्तुओं को छोड़ने में मदद करेगा।
यदि आप RESTRICT विकल्प का उपयोग करते हैं, तो ऑब्जेक्ट्स के आधार पर ट्रिगर को हटाया नहीं जाएगा।
उदाहरण के लिए:
टेबल मूल्य पर example_trigger नामक ट्रिगर को हटाने के लिए, हम निम्नलिखित कमांड चलाते हैं:
टेबल कंपनी पर example_trigger नाम का ट्रिगर छोड़ने के लिए, निम्नलिखित कमांड चलाएँ:
DROP TRIGGER example_trigger IF EXISTSON Company;
PgAdmin का उपयोग करना
अब देखते हैं कि तीनों क्रियाओं pgAdmin का उपयोग कैसे किया जाता है।
ट्रिगर बनाना
PgAdmin के माध्यम से इसे पूरा करने के लिए, यह करें:
चरण 1) अपने pgAdmin खाते में लॉगिन करें।
चरण 2)
- बाईं ओर नेविगेशन बार से- डेटाबेस पर क्लिक करें।
- डेमो पर क्लिक करें।
चरण 3) तालिका बनाने के लिए Price_Audits, क्वेरी संपादक टाइप करें:
CREATE TABLE Price_Audits (book_id INT NOT NULL,entry_date text NOT NULL)
चरण 4) निष्पादित बटन पर क्लिक करें।
चरण 5) फ़ंक्शन को परिभाषित करने के लिए निम्नलिखित कोड चलाएँ:
CREATE OR REPLACE FUNCTION auditfunc() RETURNS TRIGGER AS $my_table$BEGININSERT INTO Price_Audits(book_id, entry_date) VALUES (new.ID, current_timestamp);RETURN NEW;END;$my_table$ LANGUAGE plpgsql
चरण 6) ट्रिगर price_trigger बनाने के लिए निम्न कोड चलाएँ:
CREATE TRIGGER price_trigger AFTER INSERT ON PriceFOR EACH ROW EXECUTE PROCEDURE auditfunc()
चरण 7)
- मूल्य तालिका में एक नया रिकॉर्ड सम्मिलित करने के लिए निम्नलिखित कमांड चलाएँ:
INSERT INTO PriceVALUES (3, 400)
- निम्न रिकॉर्ड यह जांचने के लिए चलाएं कि क्या Price_Audits तालिका में कोई रिकॉर्ड डाला गया था:
SELECT * FROM Price_Audits
यह निम्नलिखित लौटाना चाहिए:
चरण 8) चलिए Price_Audits तालिका की सामग्री की जाँच करते हैं:
ट्रिगर को सूचीबद्ध करता है
चरण 1) अपने डेटाबेस में ट्रिगर्स की जांच करने के लिए निम्नलिखित कमांड चलाएँ:
SELECT tgname FROM pg_trigger
यह निम्नलिखित देता है:
ट्रिगर खोना
टेबल कंपनी पर example_trigger नाम का ट्रिगर छोड़ने के लिए, निम्नलिखित कमांड चलाएँ:
DROP TRIGGER example_trigger IF EXISTSON Company
सारांश:
- PostgreSQL ट्रिगर एक फ़ंक्शन को संदर्भित करता है जो डेटाबेस ऑब्जेक्ट पर एक डेटाबेस इवेंट, जैसे कि टेबल पर स्वचालित रूप से ट्रिगर होता है।
- ऐसी डेटाबेस घटनाओं के उदाहरणों में INSERT, UPDATE, DELETE इत्यादि शामिल हैं।
- एक ट्रिगर केवल डेटाबेस ऑब्जेक्ट के जीवनकाल के दौरान मौजूद है जिसके लिए इसे बनाया गया था।
- यदि डेटाबेस ऑब्जेक्ट हटा दिया जाता है, तो ट्रिगर भी हटा दिया जाएगा।
- PostgreSQL ट्रिगर्स क्रिएट ट्रिगियर स्टेटमेंट का उपयोग करके बनाए जाते हैं।
- प्रत्येक ट्रिगर एक फ़ंक्शन के साथ जुड़ा होता है जो यह कहता है कि ट्रिगर को लागू करने पर क्या होगा।
इस ट्यूटोरियल में प्रयुक्त डेटाबेस डाउनलोड करें