การคัดลอกข้อมูลระหว่างตารางด้วย INSERT ... SELECT
MySQL รองรับการ Insert ข้อมูลจากคำสั่ง Select โดยตรงในคำสั่งเดียวด้วยรูปแบบ INSERT INTO table2 (col) SELECT col FROM table1
สร้างตารางแรกและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable1 (Value INT);
Query OK, 0 rows affected (0.65 sec)
mysql> INSERT INTO DemoTable1 VALUES(67);
mysql> INSERT INTO DemoTable1 VALUES(46);
สร้างตารางที่สอง
mysql> CREATE TABLE DemoTable2 (Score INT);
Query OK, 0 rows affected (0.70 sec)
คำสั่งคัดลอกข้อมูลจากตารางแรกไปตารางที่สอง
mysql> INSERT INTO DemoTable2(Score) SELECT Value FROM DemoTable1;
Query OK, 2 rows affected (0.13 sec)
ตรวจสอบข้อมูลในตารางที่สอง
mysql> SELECT * FROM DemoTable2;
ผลลัพธ์:
+-------+
| Score |
+-------+
| 67 |
| 46 |
+-------+
2 rows in set (0.00 sec)
คำอธิบาย
INSERT INTO DemoTable2(Score): ระบุคอลัมน์ปลายทางSELECT Value FROM DemoTable1: ดึงข้อมูลจากตารางต้นทาง- จำนวนและชนิดข้อมูลของคอลัมน์ใน SELECT ต้องตรงกับคอลัมน์ปลายทาง
- วิธีนี้เร็วกว่าและสะดวกกว่าการดึงข้อมูลมาทำในโปรแกรมภายนอก