এক টেবিল থেকে অন্য টেবিলে কলামের নাম বা সংখ্যা ভিন্ন হলেও INSERT INTO SELECT ব্যবহার করে সহজে ডেটা কপি করা যায়।
সোর্স টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable1900 (
ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
ClientName VARCHAR(20),
ClientAge INT DEFAULT 29
) AUTO_INCREMENT = 1000;
mysql> INSERT INTO DemoTable1900 (ClientName, ClientAge) VALUES ('Chris', 45);
mysql> INSERT INTO DemoTable1900 (ClientName, ClientAge) VALUES ('David', 29);
mysql> INSERT INTO DemoTable1900 (ClientName, ClientAge) VALUES ('Mike', 37);
mysql> INSERT INTO DemoTable1900 (ClientName) VALUES ('Sam'); -- ডিফল্ট এজ ২৯
সোর্স টেবিলের ডেটা
mysql> SELECT * FROM DemoTable1900;
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1000 | Chris | 45 | | 1001 | David | 29 | | 1002 | Mike | 37 | | 1003 | Sam | 29 | +----------+------------+-----------+
ডেস্টিনেশন টেবিল তৈরি (কলাম নাম ভিন্ন)
mysql> CREATE TABLE DemoTable1901 (
EmployeeId INT,
EmployeeName VARCHAR(20),
EmployeeAge INT
);
ডেটা কপি করার কোয়েরি
mysql> INSERT INTO DemoTable1901 (EmployeeId, EmployeeName, EmployeeAge)
SELECT ClientId, ClientName, ClientAge FROM DemoTable1900;
আউটপুট: Query OK, 4 rows affected (0.00 sec)
ডেস্টিনেশন টেবিল যাচাই
mysql> SELECT * FROM DemoTable1901;
+------------+--------------+-------------+ | EmployeeId | EmployeeName | EmployeeAge | +------------+--------------+-------------+ | 1000 | Chris | 45 | | 1001 | David | 29 | | 1002 | Mike | 37 | | 1003 | Sam | 29 | +------------+------------+-------------+
গুরুত্বপূর্ণ নোট
SELECTলিস্টের কলাম ক্রমINSERT INTOকলাম লিস্টের সাথে মিলতে হবে।- AUTO_INCREMENT কলামে মান দিলে সেটি গ্রহণ করা হবে (যদি ডুপ্লিকেট না হয়)।
- ডেটা টাইপ সামঞ্জস্যপূর্ণ হলে নিশ্চিত হন।