DB2 - ट्रिगर

यह अध्याय ट्रिगर्स, उनके प्रकार, ट्रिगर्स के निर्माण और छोड़ने का वर्णन करता है।

परिचय

ट्रिगर क्रियाओं का एक समूह है, जो डेटाबेस में एक निर्दिष्ट तालिका पर एक INSERT, UPDATE या DELETE कार्रवाई का जवाब देने के लिए किया जाता है। ट्रिगर डेटाबेस में एक बार में संग्रहीत किए जाते हैं। वे डेटा के शासन को संभालते हैं। उन्हें कई अनुप्रयोगों के बीच पहुँचा और साझा किया जा सकता है। ट्रिगर्स का उपयोग करने का लाभ यह है कि यदि किसी भी परिवर्तन को एप्लिकेशन में किया जाना है, तो यह ट्रिगर पर किया जाता है; ट्रिगर को एक्सेस करने वाले प्रत्येक एप्लिकेशन को बदलने के बजाय। ट्रिगर को बनाए रखना आसान है और वे तेजी से अनुप्रयोग विकास को लागू करते हैं। ट्रिगर को SQL कथन "क्रिएट ट्राइगर" का उपयोग करके परिभाषित किया गया है।

ट्रिगर्स के प्रकार

ट्रिगर दो प्रकार के होते हैं:

1. पहले से चलाता है

वे किसी भी SQL ऑपरेशन से पहले निष्पादित किए जाते हैं।

2. ट्रिगर के बाद

वे किसी भी SQL ऑपरेशन के बाद निष्पादित होते हैं।

BEFORE ट्रिगर बनाना

आइए देखते हैं कि ट्रिगर का क्रम कैसे बनाया जाए:

Syntax:

db2 create sequence <seq_name>

Example: तालिका shopper.sales1 के लिए ट्रिगर का एक क्रम बनाना

db2 create sequence sales1_seq as int start with 1 increment by 1

Syntax:

db2 create trigger <trigger_name> no cascade before insert on 
<table_name> referencing new as <table_object> for each row set 
<table_object>.<col_name>=nextval for <sequence_name>

Example: स्वचालित कुंजी संख्या डालने के लिए shopper.sales1 तालिका के लिए ट्रिगर बनाना

db2 create trigger sales1_trigger no cascade before insert on 
shopper.sales1 referencing new as obj for each row set 
obj.id=nextval for sales1_seq

अब किसी भी मान को सम्मिलित करने का प्रयास करें:

db2 insert into shopper.sales1(itemname, qty, price) 
values('bicks', 100, 24.00)

तालिका से मूल्यों को पुनः प्राप्त करना

आइए देखें कि तालिका से मान कैसे प्राप्त करें:

Syntax:

db2 select * from <tablename>

Example:

db2 select * from shopper.sales1

Output:

ID       ITEMNAME       QTY 
-------  ------------   ---------- 
    3      bicks            100 
    2      bread            100 
  
  2 record(s) selected.

एक AFTER ट्रिगर बनाना

आइए देखते हैं कि ट्रिगर के बाद कैसे बनाएं:

Syntax:

db2 create trigger <trigger_name> no cascade before insert on 
<table_name> referencing new as <table_object> for each row set
 <table_object>.<col_name>=nextval for <sequence_name>

Example: [मान डालने और पुनः प्राप्त करने के लिए]

db2 create trigger sales1_tri_after after insert on shopper.sales1 
for each row mode db2sql begin atomic update shopper.sales1 
set price=qty*price; end

Output:

//inseting values in shopper.sales1 
db2 insert into shopper.sales1(itemname,qty,price) 
values('chiken',100,124.00) 
//output 
ID    ITEMNAME       QTY         PRICE 
----- -------------- ----------- -----------                      
    3 bicks          100         2400.00 
    4 chiken         100         12400.00 
    2 bread          100         2400.00 

	3 record(s) selected.

ट्रिगर दबाना

यहाँ एक डेटाबेस ट्रिगर कैसे छोड़ा जाता है:

Syntax:

db2 drop trigger <trigger_name>

Example:

db2 drop trigger slaes1_trigger