আমরা জানি যে ট্রিগার সংজ্ঞায়, আমরা সন্নিবেশিত, আপডেট বা মুছে ফেলা সারির কলামগুলি উল্লেখ করতে পারি। নিচের উপায়গুলি হল যেগুলি পুরানো এবং নতুন কীওয়ার্ডগুলি আমাদের কলামগুলি অ্যাক্সেস করতে সক্ষম করে −
৷-
মূল সারি থেকে একটি মান উল্লেখ করার জন্য আমাদের অবশ্যই কলামের নামটি ওএলডি-এর একটি কোয়ালিফায়ার সহ প্রিফিক্স করতে হবে৷
-
নতুন সারিতে একটি মান উল্লেখ করার জন্য আমাদের অবশ্যই কলামের নামের সাথে NEW এর একটি কোয়ালিফায়ার প্রিফিক্স করতে হবে।
এখন, OLD এবং NEW এর ব্যবহার যথাযথভাবে করা উচিত কারণ ট্রিগারিং ইভেন্ট
তাদের মধ্যে কোনটি অনুমোদনযোগ্য তা নির্ধারণ করে −
-
একটি INSERT ট্রিগারে, NEW.column_name একটি নতুন সারিতে ঢোকানোর জন্য একটি কলামের মান নির্দেশ করে৷ এখানে ওল্ড অনুমোদিত নয়৷
-
একটি DELETE ট্রিগারে, OLD.column_name একটি সারিতে মুছে ফেলার জন্য একটি কলামের মান নির্দেশ করে৷ এখানে নতুন অনুমোদনযোগ্য নয়৷
৷ -
একটি আপডেট ট্রিগারে, OLD.column_name এবং NEW.column_name যথাক্রমে সারি আপডেট হওয়ার আগে এবং পরে একটি সারিতে কলামের মান উল্লেখ করে৷
অন্য কথায়, আমরা বলতে পারি যে ওল্ডকে শুধুমাত্র পঠনযোগ্য ফ্যাশনে ব্যবহার করতে হবে এবং কলামের মান পড়তে বা পরিবর্তন করতে NEW ব্যবহার করা যেতে পারে।
ট্রিগারে OLD কীওয়ার্ডের ব্যবহার
DELETE ট্রিগারের উদাহরণ অনুসরণ করে OLD −
এর ব্যবহার দেখানো হচ্ছেmysql> CREATE TRIGGER studentinfo_after_delete -> AFTER DELETE -> ON student_info -> FOR EACH ROW FOLLOWS -> BEGIN -> DECLARE vuser varchar(30); -> SELECT USER() into vuser; -> INSERT INTO student_info_deleted(id,deleted_date,deleted_by) VALUES(OLD.id,SYSDATE(),vuser); -> END; // Query OK, 0 rows affected (0.25 sec)
ট্রিগারে নতুন কীওয়ার্ডের ব্যবহার
INSERT ট্রিগারের উদাহরণ অনুসরণ করে NEW −
এর ব্যবহার দেখানো হচ্ছেmysql> Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW BEGIN IF NEW.age < 0 THEN SET NEW.age = 0; END IF; END // Query OK, 0 rows affected (0.30 sec)