उदाहरण 1, MySQL, आप ट्रिगर में उस इंसर्ट को signal sqlstate
से रद्द कर सकते हैं
-
वर्चर कॉलम के साथ अपनी टेबल बनाएं:
mysql> create table yar (val VARCHAR(25) not null); Query OK, 0 rows affected (0.02 sec)
-
किसी शर्त की जांच करने और अनुमति न देने के लिए अपना 'सम्मिलित करने से पहले' ट्रिगर बनाएं।
mysql> delimiter $$ mysql> create trigger foo before insert on yar -> for each row -> begin -> if new.val = '' then -> signal sqlstate '45000'; -> end if; -> end;$$ Query OK, 0 rows affected (0.01 sec)
-
जहां शर्त पूरी होती है वहां डालने का प्रयास करें:
mysql> delimiter ; mysql> insert into yar values(""); ERROR 1644 (45000): Unhandled user-defined exception condition mysql> insert into yar values ("abc"); Query OK, 1 row affected (0.01 sec) mysql> select * from yar; +-----+ | val | +-----+ | abc | +-----+ 1 row in set (0.00 sec)
आपने एक खाली स्ट्रिंग डाली, ट्रिगर ने देखा कि यह खाली था और इंसर्ट को रोकने के लिए सिग्नल उठाया।
उदाहरण 2, MySQL, डेटा को शून्य बाधा का उल्लंघन करने के कारण ट्रिगर में सम्मिलित करना रद्द करें।
-
वर्चर कॉलम के साथ अपनी टेबल बनाएं:
mysql> create table yar (val VARCHAR(25) not null); Query OK, 0 rows affected (0.02 sec)
-
किसी शर्त की जांच करने और अनुमति न देने के लिए अपना 'सम्मिलित करने से पहले' ट्रिगर बनाएं।
mysql> delimiter $$ mysql> create trigger foo before insert on yar -> for each row -> begin -> if new.val = '' then -> set new.val = NULL; -> end if; -> end;$$ Query OK, 0 rows affected (0.01 sec)
-
जहां शर्त पूरी होती है वहां डालने का प्रयास करें:
mysql> delimiter ; mysql> insert into yar values(""); ERROR 1048 (23000): Column 'val' cannot be null mysql> insert into yar values ("abc"); Query OK, 1 row affected (0.01 sec) mysql> select * from yar; +-----+ | val | +-----+ | abc | +-----+ 1 row in set (0.00 sec)
आपने एक खाली स्ट्रिंग डाली, ट्रिगर ने देखा कि यह खाली है और मान को शून्य में बदल दिया है, इसलिए सम्मिलन रोका गया है।