यह आलेख वर्णन करता है कि अपने A2 होस्टिंग खाते पर MySQL ट्रिगर कैसे बनाएं और उसका उपयोग कैसे करें। ट्रिगर एक टेबल से जुड़े पूर्वनिर्धारित नियम हैं। उन्हें SQL कथन से पहले या बाद में ("ट्रिगर") कहा जा सकता है, संबंधित तालिका से डेटा सम्मिलित करता है, अपडेट करता है या हटाता है।
आप कई तरह के परिदृश्यों में ट्रिगर्स का उपयोग कर सकते हैं। उदाहरण के लिए, आप किसी पंक्ति के अपडेट होने पर कुछ मानों को स्वचालित रूप से बदलने के लिए ट्रिगर का उपयोग कर सकते हैं। या जब भी कोई पंक्ति हटाई जाती है तो आप कार्रवाई का एक सेट निर्दिष्ट कर सकते हैं। संभावनाएं लगभग अनंत हैं।
ट्रिगर बनाना और उनका उपयोग करना
आप MySQL का उपयोग करने वाले किसी भी A2 होस्टिंग सर्वर पर ट्रिगर बना सकते हैं और उनका उपयोग कर सकते हैं।
एक परीक्षण डेटाबेस सेट करना
कार्रवाई में ट्रिगर का एक मूल उदाहरण प्रदर्शित करने के लिए, आइए परीक्षण उद्देश्यों के लिए एक डेटाबेस बनाकर शुरू करें। निम्न SQL कथन में, उपयोगकर्ता नाम को बदलें आपके खाते के उपयोगकर्ता नाम के साथ:
CREATE DATABASE username_test;आप MySQL टूल का उपयोग करके कमांड लाइन से या phpMyAdmin का उपयोग करके अपने वेब ब्राउज़र में पिछले SQL कमांड (और निम्न SQL कमांड) को चला सकते हैं।
यदि आप phpMyAdmin का उपयोग कर रहे हैं, तो उपयोगकर्ता नाम . नाम पर क्लिक करें डेटाबेस का चयन करने के लिए _test। अन्यथा, यदि आप mysql कमांड-लाइन प्रोग्राम का उपयोग कर रहे हैं, तो निम्न SQL कथन टाइप करें:
USE username_test;
इसके बाद, उपयोगकर्ता नाम . में एक तालिका बनाएं _परीक्षण उत्पादों . नाम का डेटाबेस . ऐसा करने के लिए, निम्न SQL कथन चलाएँ:
CREATE TABLE products (prod_id INT NOT NULL AUTO_INCREMENT, prod_name VARCHAR(20) NOT NULL, prod_cost FLOAT NOT NULL DEFAULT 0.0, prod_price FLOAT NOT NULL DEFAULT 0.0, PRIMARY KEY(prod_id));
निम्न SQL कथन उत्पादों में कुछ नमूना डेटा जोड़ता है तालिका:
INSERT INTO products (prod_name, prod_cost, prod_price) VALUES ('Basic Widget',5.95,8.35),('Micro Widget',0.95,1.35),('Mega Widget',99.95,140.00);
अब हम अपनी टेबल के लिए एक ट्रिगर बनाने के लिए तैयार हैं!
ट्रिगर बनाना
आइए updateProductPrice . नाम का एक ट्रिगर बनाएं . यह विशेष ट्रिगर तब सक्रिय होता है जब उत्पाद तालिका अद्यतन की जाती है। जब यह घटना होती है, तो ट्रिगर यह देखने के लिए प्रत्येक पंक्ति की जांच करता है कि उत्पाद की लागत (prod_cost) है या नहीं ) मान बदला जा रहा है। अगर ऐसा है, तो ट्रिगर स्वचालित रूप से आइटम की नई कीमत (prod_price .) सेट कर देता है ) आइटम की नई लागत का 1.40 गुना (दूसरे शब्दों में, 40% मार्कअप)।
इस ट्रिगर को बनाने के लिए, निम्नलिखित MySQL कथन चलाएँ:
DELIMITER $$ CREATE TRIGGER `updateProductPrice` BEFORE UPDATE ON `products` FOR EACH ROW BEGIN IF NEW.prod_cost <> OLD.prod_cost THEN SET NEW.prod_price = NEW.prod_cost * 1.40; END IF ; END$$ DELIMITER ;DELIMITER इन कथनों की शुरुआत में कमांड MySQL को बहुत जल्द ट्रिगर परिभाषा को संसाधित करने से रोकता है। DELIMITER इन कथनों के अंत में कमांड सामान्य रूप से प्रसंस्करण लौटाता है।
ट्रिगर का उपयोग करना
उत्पाद मूल्य अपडेट करें जब भी उत्पादों . में कोई पंक्ति आती है, तो ट्रिगर अब स्वचालित रूप से लागू होने के लिए तैयार है तालिका अद्यतन की जाती है। उदाहरण के लिए, मूल विजेट की लागत बदलने के लिए निम्न SQL कथन चलाएँ:
UPDATE products SET prod_cost = 7.00 WHERE prod_id = 1;
जब आप इस SQL कथन को चलाते हैं, तो ट्रिगर भी सक्रिय हो जाता है, और नई लागत के अनुपात में मूल विजेट की कीमत को स्वचालित रूप से अपडेट करता है। इसे सत्यापित करने के लिए, आप निम्न SQL कथन चला सकते हैं:
SELECT * FROM products;
यह कथन निम्नलिखित परिणाम देता है:
+---------+--------------+-----------+------------+ | prod_id | prod_name | prod_cost | prod_price | +---------+--------------+-----------+------------+ | 1 | Basic Widget | 7 | 9.8 | | 2 | Micro Widget | 0.95 | 1.35 | | 3 | Mega Widget | 99.95 | 140 | +---------+--------------+-----------+------------+ 3 rows in set (0.00 sec)
जैसा कि आप देख सकते हैं, उत्पाद मूल्य अपडेट करें ट्रिगर ने नई लागत (7.00) के आधार पर मूल विजेट की कीमत (9.80) को स्वचालित रूप से अपडेट कर दिया है। हालांकि यह एक सरल उदाहरण है कि एक ट्रिगर क्या कर सकता है, आप अपने डेटाबेस में उन्हीं तकनीकों का उपयोग कर सकते हैं—संभावनाएं लगभग अनंत हैं।
अधिक जानकारी
- MySQL ट्रिगर्स के बारे में अधिक जानकारी के लिए, कृपया http://dev.mysql.com/doc/refman/5.0/en/triggers.html पर जाएं।
- ट्रिगर बनाएं के बारे में अधिक जानकारी के लिए विवरण, कृपया http://dev.mysql.com/doc/refman/5.0/en/create-trigger.html पर जाएं।