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

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)

ট্রিগার তৈরি (AFTER INSERT)

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 ;

ট্রিগার তৈরি করতে DELIMITER পরিবর্তন করতে হয়।

Table1-এ রেকর্ড ইনসার্ট করলে ট্রিগার সক্রিয় হবে এবং Table2-এ রেকর্ড ইনসার্ট হবে:

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

Table1 চেক করুন:

mysql> SELECT * FROM Table1;

আউটপুট:

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

Table2 চেক করুন (ট্রিগারের মাধ্যমে ইনসার্ট হয়েছে):

mysql> SELECT * FROM Table2;

আউটপুট:

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

নোট: NEW কীওয়ার্ড নতুন সারির কলাম মান রেফার করে। BEFORE INSERT দিয়ে মান মডিফাই করা যায়, AFTER INSERT দিয়ে অডিট/লগিং/সিঙ্ক করা হয়।

  1. MySQL-এ LEFT JOIN ব্যবহার করে টেবিল A-র ডেটা টেবিল B-এ না থাকলে টেবিল C-তে ইনসার্ট করা

  2. MySQL-এ INSERT INTO SELECT ব্যবহার করে অন্য টেবিল থেকে স্ট্রিং মান নিয়ে রো যোগ করা

  3. MySQL-এ INSERT INTO SELECT ব্যবহার করে অন্য টেবিল থেকে ডেটা কপি করা

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