কম্পিউটার

কিভাবে আমরা একটি MySQL ট্রিগার তৈরি এবং ব্যবহার করতে পারি?


একটি নতুন ট্রিগার তৈরি করার জন্য, আমাদের তৈরি করুন ট্রিগার বিবৃতি ব্যবহার করতে হবে৷ এর সিনট্যাক্স নিম্নরূপ -

প্রতিটি সারির জন্য ট্রিগার ট্রিগার_নাম trigger_time trigger_eventON টেবিল_নাম তৈরি করুন...END;

এখানে,

  • ট্রিগার_নাম ট্রিগারের নাম যা CREATE TRIGGER স্টেটমেন্টের পরে রাখতে হবে। ট্রিগার_নামের নামকরণের নিয়মটি [ট্রিগার সময়] _[টেবিলের নাম] _[ট্রিগার ইভেন্ট] এর মতো হতে পারে। উদাহরণস্বরূপ, আগে_ছাত্র_আপডেট বা আফটার_স্টুডেন্ট_ইনসার্ট ট্রিগারের নাম হতে পারে।
  • ট্রিগার_টাইম ট্রিগার সক্রিয়করণের সময় এবং এটি আগে বা পরে হতে পারে। একটি ট্রিগার সংজ্ঞায়িত করার সময় আমাদের অবশ্যই সক্রিয়করণের সময় নির্দিষ্ট করতে হবে। যদি আমরা টেবিলে করা পরিবর্তনের আগে অ্যাকশন প্রসেস করতে চাই তাহলে আমাদের অবশ্যই BEFORE ব্যবহার করতে হবে এবং যদি আমরা টেবিলে করা পরিবর্তনের জন্য অ্যাকশন পোস্ট প্রক্রিয়া করতে চাই।
  • ট্রিগার_ইভেন্ট INSERT, UPDATE, বা DELETE হতে পারে৷ এই ইভেন্টের কারণে ট্রিগার চালু করা হয়। একটি ট্রিগার শুধুমাত্র একটি ইভেন্ট দ্বারা আহ্বান করা যেতে পারে। একটি ট্রিগার সংজ্ঞায়িত করতে যা একাধিক ইভেন্ট দ্বারা আহ্বান করা হয়, আমাদের একাধিক ট্রিগার সংজ্ঞায়িত করতে হবে, প্রতিটি ইভেন্টের জন্য একটি৷
  • টেবিল_নাম টেবিলের নাম। আসলে, একটি ট্রিগার সবসময় একটি নির্দিষ্ট টেবিলের সাথে যুক্ত থাকে। একটি টেবিল ছাড়া, একটি ট্রিগার বিদ্যমান থাকবে না তাই আমাদের 'ON' কীওয়ার্ডের পরে টেবিলের নাম উল্লেখ করতে হবে।
  • শুরু…END ব্লক যেখানে আমরা ট্রিগারের জন্য যুক্তি সংজ্ঞায়িত করব।

উদাহরণ

ধরুন আমরা টেবিলে ট্রিগার প্রয়োগ করতে চাই Student_age যা নিম্নরূপ তৈরি হয় -

mysql> সারণি তৈরি করুন Student_age(বয়স INT, নাম Varchar(35)); কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.80 সেকেন্ড)

এখন, নিচের ট্রিগারটি স্বয়ংক্রিয়ভাবে বয়স =0 সন্নিবেশ করাবে যদি কেউ বয়স <0 সন্নিবেশ করার চেষ্টা করে।

mysql> DELIMITER //mysql> প্রতিটি সারির জন্য ছাত্র বয়স ঢোকানোর আগে ট্রিগার তৈরি করুন_inser_studentage <0 তারপর সেট করুন NEW.age =0;END IF;END // কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত হয়েছে (0.30) /প্রে> 

এখন, এই ট্রিগারটি চালু করার জন্য, আমরা নিম্নলিখিত বিবৃতিগুলি ব্যবহার করতে পারি -

mysql> ছাত্র_বয়স(বয়স, নাম) মান(30, 'রাহুল');কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.14 সেকেন্ড)mysql> ছাত্র বয়স (বয়স, নাম) মান (-10, 'হর্ষিত') ঢোকান );কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.11 সেকেন্ড)mysql> Student_age থেকে * নির্বাচন করুন;+------+---------+| বয়স | নাম |+------+---------+| 30 | রাহুল || 0 | হর্ষিত |+------+---------+2 সারি সেটে (0.00 সেকেন্ড)

উপরের ফলাফল সেটটি দেখায় যে টেবিলে নেতিবাচক মান সন্নিবেশ করালে একটি ট্রিগার দ্বারা 0 সন্নিবেশ করা হবে৷

উপরেরটি ট্রিগার_ইভেন্ট সহ একটি ট্রিগারের উদাহরণ ছিল কারণ INSERT এবং trigger_time আগে রয়েছে।


  1. আমরা কি একটি মাইএসকিউএল ক্যোয়ারীতে কোথায়, এবং এবং বা ব্যবহার করতে পারি?

  2. কিভাবে MySQL CREATE TABLE ক্যোয়ারীতে CHAR_LENGTH() ব্যবহার করবেন?

  3. কিভাবে একটি একক MySQL ক্যোয়ারীতে COUNT() এবং IF() ব্যবহার করবেন?

  4. কিভাবে TikTok অবতার তৈরি এবং ব্যবহার করবেন