কম্পিউটার

MySQL ট্রিগার অন্য টেবিলে সারি সন্নিবেশ করতে?


প্রথমে একটি টেবিল তৈরি করা যাক। একটি টেবিল তৈরি করতে CREATE কমান্ড ব্যবহার করা হয়।

mysql> create table Table1
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.62 sec)

এখন আরেকটি টেবিল তৈরি করা যাক।

mysql> create table Table2
   -> (
   -> id int,
   -> name varchar(100)
   -> );
Query OK, 0 rows affected (0.49 sec)

এখন, আপনি কিভাবে একটি ট্রিগার তৈরি করতে পারেন তা নিচে দেওয়া হল৷

mysql> delimiter #
mysql> create trigger Table1Trigger after insert on Table1
   -> for each row
   -> begin
   ->  insert into Table2(id, name) values (new.id, new.name);
   -> end#
Query OK, 0 rows affected (0.29 sec)

mysql> delimiter ;

একটি ট্রিগার তৈরি করতে, আমাদের ডিলিমিটার পরিবর্তন করতে হবে৷

সারিটি সারি 1-এ ঢোকানো ট্রিগার সক্রিয় করে এবং সারণী 2-এ রেকর্ড সন্নিবেশিত করে। সারণি 1 এ রেকর্ড সন্নিবেশ করান।

mysql> insert into Table1 values(1,'John'),(2,'Smith'),(3,'Carol');
Query OK, 3 rows affected (0.28 sec)
Records: 3  Duplicates: 0  Warnings: 0

উভয় টেবিলে রেকর্ড ঢোকানো হয়েছে কিনা তা পরীক্ষা করতে।

mysql> select *from Table1;

এখানে আউটপুট যা দেখায় যে সারণি 1 এ সফলভাবে ঢোকানো রেকর্ড।

+------+-------+
| id   | name  |
+------+-------+
|    1 | John  |
|    2 | Smith |
|    3 | Carol |
+------+-------+
3 rows in set (0.00 sec)

দ্বিতীয় টেবিল চেক করতে।

mysql>  select *from Table2;

নিম্নোক্ত আউটপুট যা দেখায় যে সারণি 2 এ সফলভাবে প্রবেশ করানো হয়েছে।

+------+-------+
| id   | name  |
+------+-------+
|    1 | John  |
|    2 | Smith |
|    3 | Carol |
+------+-------+
3 rows in set (0.00 sec)

  1. সারণি সি-তে ডেটা সন্নিবেশ করুন যদি MySQL-এর টেবিল A-এর সাথে তুলনা করার সময় ডেটা টেবিল B-তে না থাকে?

  2. মাইএসকিউএল-এ রেফারেন্স হিসাবে অন্য টেবিল থেকে শুধুমাত্র স্ট্রিং ব্যবহার করে কীভাবে একটি টেবিলে একটি সারি যুক্ত করবেন?

  3. অন্য টেবিল থেকে মান ব্যবহার করে INSERT INTO জন্য MySQL ক্যোয়ারী?

  4. মাইএসকিউএল-এ এক টেবিল থেকে অন্য টেবিলে ডেটা সন্নিবেশ করান?