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

MySQL에서 한 테이블의 데이터를 다른 테이블로 복사하기 (INSERT INTO SELECT)

INSERT INTO 대상테이블 SELECT ... FROM 소스테이블 구문으로 같은 데이터베이스 내 테이블 간 데이터 복사가 가능합니다.

소스 테이블 생성 및 데이터

mysql> CREATE TABLE DemoTable1 (
    -> Id INT,
    -> FirstName VARCHAR(20),
    -> Age INT
    -> );
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1 VALUES(101,'Chris',24);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO DemoTable1 VALUES(102,'David',28);
Query OK, 1 row affected (0.00 sec)

대상 테이블 생성

mysql> CREATE TABLE DemoTable2 (
    -> EmployeeId INT,
    -> EmployeeName VARCHAR(20),
    -> EmployeeAge INT
    -> );
Query OK, 0 rows affected (0.00 sec)

조건부 복사 (Id=102만)

mysql> INSERT INTO DemoTable2(EmployeeId,EmployeeName,EmployeeAge)
    -> SELECT Id, FirstName, Age FROM DemoTable1 WHERE Id=102;
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

대상 테이블 확인

mysql> SELECT * FROM DemoTable2;
+------------+--------------+-------------+
| EmployeeId | EmployeeName | EmployeeAge |
+------------+--------------+-------------+
|        102 | David        |          28 |
+------------+--------------+-------------+
1 row in set (0.00 sec)

핵심: 컬럼 순서와 타입이 맞아야 합니다. INSERT INTO DemoTable2 SELECT * FROM DemoTable1처럼 컬럼 생략 시 순서/개수 완벽 일치해야 합니다. 대용량 복사는 CREATE TABLE ... AS SELECT가 더 빠릅니다.

  1. Java ব্যবহার করে MySQL ডেটাবেসে ডেটা ইনসার্ট করা (JDBC)

  2. Java দিয়ে MySQL ডেটাবেস থেকে লাস্ট রেকর্ড পাওয়া

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

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