इस लेख में, हम एक उदाहरण की मदद से SQL में ट्रिगर की अवधारणा और इसके कार्यान्वयन के बारे में जानेंगे।
संरचित क्वेरी भाषा में एक ट्रिगर प्रक्रियात्मक बयानों का एक सेट है जो डेटाबेस में टेबल पर कुछ घटनाओं के लिए कोई प्रतिक्रिया होने पर स्वचालित रूप से निष्पादित होता है। डेटाबेस में डेटा की अखंडता की रक्षा के लिए ट्रिगर का उपयोग किया जाता है।
आइए SQL में ट्रिगर की अवधारणा को समझने के लिए निम्न स्थिति देखें:
मान लीजिए सुप्रिया एक बहुराष्ट्रीय कंपनी में सूचना प्रौद्योगिकी प्रबंधक हैं। जब एक नए कर्मचारी का रिकॉर्ड डेटाबेस में दर्ज किया जाता है, तो उसे प्रत्येक नए कर्मचारी को 'बधाई' संदेश भेजना होता है। यदि पांच या छह कर्मचारी हैं, तो सुप्रिया इसे मैन्युअल रूप से कर सकती हैं, लेकिन यदि नए कर्मचारियों की संख्या एक हजार से अधिक है, तो ऐसी स्थिति में, उन्हें डेटाबेस में ट्रिगर का उपयोग करना होगा।
इस प्रकार, सुप्रिया को तालिका में ट्रिगर बनाना होगा, जो डेटाबेस में रिकॉर्ड डालने के बाद नए कर्मचारियों को स्वचालित रूप से 'बधाई' संदेश भेजेगा।
ट्रिगर हमेशा डेटाबेस में विशिष्ट तालिका के साथ निष्पादित किया जाता है। अगर हम टेबल हटाते हैं, तो उस टेबल से जुड़े सभी ट्रिगर भी अपने आप हट जाते हैं।
संरचित क्वेरी भाषा में ट्रिगर केवल ईवेंट होने से पहले या ईवेंट होने के बाद ही कॉल किए जाते हैं।
इवेंट से पहले या बाद में ट्रिगर में केवल तीन इवेंट होते हैं, इंसर्ट इवेंट, अपडेट इवेंट या डिलीट इवेंट।
1. ईवेंट सम्मिलित करें :जब भी तालिका में कोई नया रिकॉर्ड डाला जाता है तो सम्मिलित घटना होती है।
2. अपडेट इवेंट :एक अद्यतन घटना तब होती है जब तालिका में मौजूदा रिकॉर्ड अपडेट किए जाते हैं।
3. ईवेंट हटाएं: डिलीट इवेंट तब होता है जब टेबल से रिकॉर्ड डिलीट किया जाता है।
संरचित क्वेरी भाषा में ट्रिगर के प्रकार
संरचित क्वेरी भाषा में उपयोग किए जाने वाले छह प्रकार के ट्रिगर निम्नलिखित हैं:
1. इन्सर्ट ट्रिगर के बाद:
तालिका में रिकॉर्ड डालने के बाद SQL में डालने के बाद ट्रिगर लागू किया जाता है।
2. अद्यतन ट्रिगर के बाद:
तालिका में मौजूदा रिकॉर्ड अपडेट होने के बाद SQL में आफ्टर अपडेट ट्रिगर को लागू किया जाता है।
3. ट्रिगर को हटाने के बाद:
तालिका से रिकॉर्ड हटाए जाने के बाद SQL में बाद में हटाए जाने वाले ट्रिगर को लागू किया जाता है।
4. ट्रिगर डालने से पहले:
तालिका में रिकॉर्ड डालने से पहले SQL में पहले डालने वाला ट्रिगर लागू किया जाता है।
5. अपडेट ट्रिगर से पहले:
तालिका में मौजूदा रिकॉर्ड अपडेट होने से पहले SQL में पहले अपडेट ट्रिगर को लागू किया जाता है।
6. ट्रिगर को हटाने से पहले:
तालिका से रिकॉर्ड हटाए जाने से पहले SQL में पहले हटाए गए ट्रिगर को लागू किया जाता है।
SQL में ट्रिगर का सिंटैक्स:
CREATE TRIGGER Trigger_Name
[BEFORE | AFTER] [Insert | Update | Delete]
ON [Table_Name]
[FOR EACH ROW | FOR EACH COLUMN]
AS
Set of SQL Statement
- ट्रिगर सिंटैक्स में, हमें सिंटैक्स में CREATE TRIGGER कीवर्ड के ठीक बाद ट्रिगर नाम को परिभाषित करना होगा।
- ट्रिगर नाम के बाद, हमें यह परिभाषित करना होगा कि हम किस ट्रिगर को लागू करना चाहते हैं, पहले ट्रिगर या आफ्टर ट्रिगर कीवर्ड इवेंट नाम के साथ।
- फिर, हमें उस तालिका के नाम का उल्लेख करना होगा जिस पर ट्रिगर हुआ है।
- तालिका नाम के बाद, हमें ट्रिगर को पंक्ति-स्तर या स्तंभ-स्तर ट्रिगर पर परिभाषित करना चाहिए।
- और अंत में, हमें SQL स्टेटमेंट लिखना होता है जो घटित होने वाली घटनाओं पर कार्य करता है।
SQL में ट्रिगर का उदाहरण
SQL में ट्रिगर की अवधारणा को समझने के लिए, हमें एक तालिका बनानी होगी जिस पर ट्रिगर निष्पादित किया जाना है।
निम्न क्वेरी SQL डेटाबेस में विद्यार्थी तालिका बनाती है।
CREATE TABLE Student(
Student_rollno INT NOT NULL PRIMARY KEY,
FirstName varchar(40),
English_Marks INT,
Physics_Marks INT,
Chemistry_Marks INT,
Biology_Marks INT,
Maths_Marks INT,
Total_Marks INT,
Percentage INT);
निम्न क्वेरी छात्र तालिका की संरचना को दर्शाती है:
डीईएससी छात्र;
फ़ील्ड | प्रकार | शून्य | कुंजी | डिफ़ॉल्ट | अतिरिक्त |
Student_RollNo | आईएनटी | नहीं | पीआरआई | शून्य | |
प्रथम_नाम | वर्चर(40) | हां | शून्य | ||
English_Marks | आईएनटी | हां | शून्य | ||
भौतिकी_चिह्न | आईएनटी | हां | शून्य | ||
रसायन शास्त्र_चिह्न | आईएनटी | हां | शून्य | ||
बायोलॉजी_मार्क्स | आईएनटी | हां | शून्य | ||
Maths_Marks | आईएनटी | हां | शून्य | ||
कुल_चिह्न | आईएनटी | हां | शून्य | ||
प्रतिशत | आईएनटी | हां | शून्य |
निम्न क्वेरी तालिका में छात्र रिकॉर्ड डालने से पहले ट्रिगर को सक्रिय करती है:
CREATE TRIGGER Student _Marks
BEFORE INSERT
ON
Student
FOR EACH ROW
SET new.Total_Marks = new.English_Marks + new.Physics_Marks + new.Chemistry_Marks + new.Biology_Marks + new.Maths_Marks,
new.Percentage = ( new.Total_Marks / 500) * 100;
निम्नलिखित प्रश्न छात्र तालिका में रिकॉर्ड सम्मिलित करते हैं।
INSERT INTO Student (Student_RollNo, First_Name, English_Marks, Physics_Marks, Chemistry_Marks,Biology_Marks, Maths_Marks, Total_Marks, Percentage) VALUES ( 1, ‘Raman’, 90, 80, 75, 70 ,92, 0, 0);
उपरोक्त INSERT स्टेटमेंट के आउटपुट की जांच करने के लिए, आपको निम्नलिखित SELECT स्टेटमेंट टाइप करना होगा:
SELECT * FROM Student
आउटपुट:
Student_RollNo | प्रथम_नाम | अंग्रेज़ी_चिह्न | भौतिकी_चिह्न | रसायन विज्ञान_चिह्न | जीव विज्ञान_चिह्न | गणित_अंक | कुल_चिह्न | प्रतिशत |
1 | रमन | 90 | 80 | 75 | 70 | 92 | 407 | 81 |
एसक्यूएल में ट्रिगर के लाभ
संरचित क्वेरी भाषा में ट्रिगर के तीन मुख्य लाभ निम्नलिखित हैं:
- SQL डेटा और तालिकाओं में संदर्भात्मक अखंडता बनाए रखने के लिए एक वैकल्पिक तरीका प्रदान करता है।
- ट्रिगर शेड्यूल किए गए कार्यों को स्वचालित रूप से निष्पादित करने में मदद करते हैं।
- वे विभिन्न व्यवसायों के डेटाबेस स्तर में त्रुटियों को पकड़ते हैं।
- वे डेटाबेस उपयोगकर्ताओं को डालने और अपडेट करने से पहले मूल्यों को मान्य करने की अनुमति देते हैं।
एसक्यूएल में ट्रिगर के नुकसान
संरचित क्वेरी भाषा में ट्रिगर के मुख्य नुकसान निम्नलिखित हैं:
- वे संकलित नहीं हैं।
- ट्रिगर में त्रुटियों को खोजना और डीबग करना संभव नहीं है।
- यदि हम ट्रिगर में जटिल कोड का उपयोग करते हैं, तो यह एप्लिकेशन को धीमा कर देता है।
- ट्रिगर डेटाबेस सिस्टम पर उच्च भार को बढ़ाता है।