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

MySQL-এ ভিন্ন স্ট্রাকচারवाले টেবিল থেকে ডেটা ইনসার্ট করা (INSERT INTO ... SELECT)

কলাম ম্যাপিং দিয়ে টেবিল ইন্টার-কপি

INSERT INTO target(col1,col2...) SELECT src_col1, src_col2... FROM source সিনট্যাক্স দিয়ে ভিন্ন স্কিমার টেবিলে ডেটা কপি করা যায়।

উদাহরণ

সোর্স টেবিল:

mysql> CREATE TABLE DemoTable1 (
    -> PersonId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> PersonName VARCHAR(20), PersonAge INT, PersonCountryName VARCHAR(20)
    -> );
mysql> INSERT INTO DemoTable1(PersonName,PersonAge,PersonCountryName) VALUES
    -> ('Chris Brown',24,'US'), ('John Doe',26,'UK'), ('David Miller',23,'AUS');

টার্গেট টেবিল (আরো কলাম + ডিফল্ট ভ্যালু):

mysql> CREATE TABLE DemoTable2 (
    -> EmployeeId INT, EmployeeFullName VARCHAR(30), EmployeeAge INT,
    -> EmployeeCountryName VARCHAR(20), EmployeeSalary INT DEFAULT 20000
    -> );

কপি কোয়েরি

mysql> INSERT INTO DemoTable2(EmployeeId,EmployeeFullName,EmployeeAge,EmployeeCountryName)
    -> SELECT PersonId, PersonName, PersonAge, PersonCountryName FROM DemoTable1;

ফলাফল

+------------+------------------+-------------+---------------------+----------------+
| EmployeeId | EmployeeFullName | EmployeeAge | EmployeeCountryName | EmployeeSalary |
+------------+------------------+-------------+---------------------+----------------+
|          1 | Chris Brown      |          24 | US                  |          20000 |
|          2 | John Doe         |          26 | UK                  |          20000 |
|          3 | David Miller     |          23 | AUS                 |          20000 |
+------------+------------------+-------------+---------------------+----------------+

নোট: টার্গেট টেবিলের EmployeeSalary-এ DEFAULT 20000 থাকায় সেটি অটোমেটিকলি সেট হয়েছে।

  1. Java ব্যবহার করে MySQL টেবিলে রেকর্ড সন্নিবেশ করা

  2. MySQL-এ UPDATE JOIN ব্যবহার করে অন্য টেবিল থেকে ডেটা আপডেট করা

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

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