วิธีที่ง่ายและรวดเร็วที่สุดในการคัดลอกข้อมูลระหว่างตารางคือใช้คำสั่ง INSERT INTO ... SELECT
ขั้นตอนการคัดลอกข้อมูล
1. สร้างตารางต้นทาง (FirstTable)
CREATE TABLE FirstTable (
id INT,
name VARCHAR(100)
);
2. เพิ่มข้อมูลตัวอย่าง
INSERT INTO FirstTable VALUES (1, 'john'), (2, 'Smith');
3. สร้างตารางปลายทาง (SecondTable)
CREATE TABLE SecondTable (
id INT,
name VARCHAR(100)
);
4. คัดลอกข้อมูลด้วยคำสั่งเดียว
INSERT INTO SecondTable (id, name)
SELECT id, name FROM FirstTable;
5. ตรวจสอบผลลัพธ์
SELECT * FROM SecondTable;
+------+-------+
| id | name |
+------+-------+
| 1 | john |
| 2 | Smith |
+------+-------+
วิธีอื่นๆ ที่นิยมใช้
- CREATE TABLE ... SELECT: สร้างตารางใหม่พร้อมคัดลอกโครงสร้างและข้อมูลในครั้งเดียว
CREATE TABLE NewTable AS SELECT * FROM FirstTable; - mysqldump: สำหรับย้ายข้อมูลระหว่างเซิร์ฟเวอร์หรือสำรองข้อมูล
ข้อควรระวัง
- คอลัมน์ใน SELECT ต้องตรงกับคอลัมน์ใน INSERT
- Primary Key และ Index จะไม่ถูกคัดลอกไปด้วย (ต้องสร้างใหม่)
- ข้อมูลขนาดใหญ่ควรพิจารณาแบทช์หรือใช้เครื่องมือเฉพาะทาง