কম্পিউটার টিউটোরিয়াল

MySQL-এ ট্রিগার (BEFORE INSERT) দিয়ে শূন্য মান প্রতিবন্ধক করা

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)
  1. MySQL INSERT-এ ডুপ্লিকেট সারি প্রতিরোধ করা

  2. MySQL-এ LENGTH ও REPLACE ব্যবহার করে কমা (,) গণনা করা

  3. MySQL-এ UPDATE ... WHERE ব্যবহার করে নির্দিষ্ট সারি ও কলাম আপডেট করুন

  4. MySQL-এ ইউজার-ডিফাইনড ভেরিয়েবল ব্যবহার করে এক কলাম থেকে অন্য কলামের মান ডিরাইভ করা (রানিং টোটাল)