Friday, 26 July 2019

ট্রিগার এর মাধ্যমে ডাটা ইনসার্ট - insert data using Database Trigger (Mysql)




সর্বপ্রথম আমরা প্রবলেমটা বুঝিঃ আমি একটা টেবিলের একটা কলামের ভ্যালুর উপর ডিপেন্ড করে আরেকটা কলামে ডাটা insert করব । এই কাজটা ট্রিগার এর মাধ্যমে খুব সহজেই করা যায় । 

টেবিলের পরিচয়ঃ প্রথমে আমরা  Student_age নামে একটি টেবিল  তৈরি করব । এই টেবিলে সর্বমোট ৪ টি কলাম আছে প্রথম কলাম হচ্ছে Student এর আইডি , ২য়টি হচ্ছে Student এর বয়স , ৩য়টি হচ্ছে Student এর নাম , ৪র্থটি হচ্ছে Student এর টাইপ । টাইপ তিনটি বাচ্চা (KIDS), টিন (TEEN),  প্রাপ্তবয়স্ক(MATURE)    
  1. CREATE TABLE `Student_age` (
  2.       `id` int(11) DEFAULT NULL,
  3.       `age` int(11) DEFAULT NULL,
  4.       `Name` varchar(35) DEFAULT NULL,
  5.       `Student_type` varchar(70) DEFAULT NULL
  6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

ট্রিগার সেটঃ  ট্রিগার নিয়ে কাজ করার পুর্বে ট্রিগার সম্পর্কে জেনে নিতে হবে । ট্রিগারের বেসিক নিতে পারেন এখান থেকে  । এবার আসি আমরা যা করব ট্রিগার নিয়ে ।  আমরা Student_age টেবিলএ একটা ট্রিগার সেট করবো যেটা Student এর age এর উপর ডিপেন্ড করে Student এর টাইপ insert করবে । ট্রিগার যে কাজ করবেঃ
1. Student এর age ১২ এর নিচে থাকলে ট্রিগার Student এর টাইপ insert করবে KIDS
2. Student এর age ১৯ এর নিচে থাকলে ট্রিগার Student এর টাইপ insert করবে TEEN
3. Student এর age ১৯ এর বেশী থাকলে ট্রিগার Student এর টাইপ insert করবে MATURE
কোডঃ

  1.  DELIMITER //
  2.         Create Trigger before_inser_studentage BEFORE INSERT ON student_age FOR EACH ROW
  3.         BEGIN
  4.         IF NEW.age <12 THEN
  5.                      SET NEW.Student_type = "KIDS";
  6.         ELSEIF NEW.age <19  THEN
  7.                     SET NEW.Student_type = 'TEEN';
  8.         ELSEIF NEW.age >19  THEN
  9.                     SET NEW.Student_type = 'MATURE';
  10.         END IF;
  11.         END ;


এবার ডাটা ইনসার্টঃ এবার আসল ডাটা insert এর পালা। আমরা তিনটা কলামে(id, age, Name) ডাটা insert করব । ট্রিগার Student_type কলামে ডাটা insert করবে age কলামের ডাটার উপরে নির্ভর করে । আমরা নিচে তিনটি ডাটা insert করার কমান্ড গুলা run করবঃ



  1. INSERT INTO Student_age(id, age, Name) values(2012331501, 10, 'Rahul');
  2. INSERT INTO Student_age(id, age, Name) values(2012331502, 25, 'TAREQ');
  3. INSERT INTO Student_age(id, age, Name) values(2012331503, 15, 'SHAMIT');


আউটপুট  দেখার পালাঃ  এবার আমরা দেখব আসলে ট্রিগার কাজ করেছে কিনা। সেটা দেখার জন্য আমারা

  1. select * from Student_age
উপরের কমান্ডটি run করব।  Output নিচের picture এ দেওয়া হল । 


ইয়েস 💪ট্রিগার কাজ করেছে।  আমরা insert করেছি id, age, name ট্রিগার automatically - Student_type insert করেছে ।
আরো কিছু প্রবেলেমঃ


1. Student grade update (A+, A, A-, B+, B...etc.) depending on his mark
2. Salary of Employee never goes negative value
......

বানান ভুল আছে মাফ করবেন । 
ধন্যবাদ

2 comments:

ট্রিগার এর মাধ্যমে ডাটা ইনসার্ট - insert data using Database Trigger (Mysql)

সর্বপ্রথম আমরা প্রবলেমটা বুঝিঃ আমি একটা টেবিলের একটা কলামের ভ্যালুর উপর ডিপেন্ড করে আরেকটা কলামে ডাটা insert করব । এই কাজটা ট্রি...