MySQL-এ এক টেবিল থেকে ডেটা সিলেক্ট করে অন্য টেবিলে ইনসার্ট করতে INSERT INTO ... SELECT স্টেটমেন্ট ব্যবহার করা হয়। এটি ডেটা মাইগ্রেশন, ব্যাকআপ বা ফিল্টারড কপি করার জন্য আদর্শ।
উদাহরণ
১. সোর্স টেবিল তৈরি ও ডেটা ইনসার্ট করুন
mysql> CREATE TABLE DemoTable1 (
-> Id INT,
-> FirstName VARCHAR(20)
-> );
mysql> INSERT INTO DemoTable1 VALUES(101, 'Chris');
mysql> INSERT INTO DemoTable1 VALUES(NULL, 'Bob');
mysql> INSERT INTO DemoTable1 VALUES(NULL, NULL);
mysql> INSERT INTO DemoTable1 VALUES(102, 'David');
২. ডেস্টিনেশন টেবিল তৈরি করুন
mysql> CREATE TABLE DemoTable2 (
-> StudentId INT,
-> StudentName VARCHAR(20)
-> );
৩. শুধু নন-নাল মানগুলো কপি করুন
mysql> INSERT INTO DemoTable2
-> SELECT Id, FirstName FROM DemoTable1
-> WHERE Id IS NOT NULL AND FirstName IS NOT NULL;
৪. ডেস্টিনেশন টেবিলের ডেটা দেখুন
mysql> SELECT * FROM DemoTable2;
আউটপুট:
+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 101 | Chris |
| 102 | David |
+-----------+-------------+
মূল পয়েন্ট:
- কলাম সংখ্যা এবং টাইপ মেলাতে হবে।
WHEREক্লজ দিয়ে ফিল্টার করা যায়।AUTO_INCREMENTকলাম থাকলে সেটি ইগনোর করা যায়।- বড় ডেটাসেটের জন্য
INSERT IGNORE INTO ... SELECTবাON DUPLICATE KEY UPDATEব্যবহার করুন।