MySQL-এ BEFORE INSERT ট্রিগার ব্যবহার করে নির্দিষ্ট কলামে শূন্য (০) মান ইনসার্ট করা রক্ষা করা যায়।
টেবিল ও ট্রিগার তৈরি
mysql> CREATE TABLE DemoTable (Value INT);
Query OK, 0 rows affected (0.85 sec)
mysql> DELIMITER //
mysql> CREATE TRIGGER preventing_to_insert_zero_value
BEFORE INSERT ON DemoTable
FOR EACH ROW
BEGIN
IF NEW.Value = 0 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'You can not provide 0 value';
END IF;
END //
Query OK, 0 rows affected (0.34 sec)
mysql> DELIMITER ;
টেস্ট: ০ ইনসার্ট করা যাবে না
mysql> INSERT INTO DemoTable VALUES (0); ERROR 1644 (45000): You cannot provide 0 value
অন্য মান ইনসার্ট — সফল
mysql> INSERT INTO DemoTable VALUES (10), (-1000); Query OK, 2 rows affected
ফলাফল
mysql> SELECT * FROM DemoTable;
+-------+ | Value | +-------+ | 10 | | -1000 | +-------+
ট্রিগার দিয়ে ডেটা ইন্টিগ্রিটি নিশ্চিতকরণ
BEFORE INSERT/UPDATE→ ইনপুট যাচাই/মডিফাইSIGNAL SQLSTATE '45000'→ কাস্টম এরর থ্রোNEW.col→ নতুন রো কলাম অ্যাক্সেস- প্রোডাকশনে চেক কনস্ট্রেইন্ট (MySQL 8.0.16+) ব্যবহার করুন:
CHECK (Value <> 0)