รูปแบบคำสั่ง INSERT หลายแถว
ใน MySQL คุณสามารถเพิ่มข้อมูลหลายแถวพร้อมกันได้ด้วยคำสั่ง INSERT เพียงครั้งเดียว โดยคั่นชุดค่าด้วยเครื่องหมายจุลภาค (,) รูปแบบคือ:
INSERT INTO your_table_name (col1, col2, ...)
VALUES
(value1, value2, ...),
(value1, value2, ...),
(value1, value2, ...);
ตัวอย่างการใช้งานจริง
1. สร้างตารางผู้ใช้
CREATE TABLE MultipleRowsInsert (
UserId INT,
UserName VARCHAR(200)
);
2. เพิ่ม 5 แถวพร้อมกัน
INSERT INTO MultipleRowsInsert (UserId, UserName) VALUES
(100, 'Bob'),
(101, 'Smith'),
(102, 'Carol'),
(104, 'David'),
(105, 'Sam');
3. ตรวจสอบผลลัพธ์
SELECT * FROM MultipleRowsInsert;
ผลลัพธ์ที่ได้
| UserId | UserName |
|---|---|
| 100 | Bob |
| 101 | Smith |
| 102 | Carol |
| 104 | David |
| 105 | Sam |
ข้อดีและข้อควรระวัง
- ⚡ เร็วกว่า การ INSERT ทีละแถว (ลด Round-trip ไป Database)
- 📦 Atomic - ทั้งชุดสำเร็จหรือล้มเหลวร่วมกัน (ถ้าไม่ได้ใช้ Transaction แบบแยก)
- 📏 มีข้อจำกัด
max_allowed_packet(ค่าเริ่มต้น ~4MB-64MB) - 🔢 คืนค่า
LAST_INSERT_ID()ของแถวแรกเท่านั้น - ✅ ใช้
INSERT IGNOREหรือON DUPLICATE KEY UPDATEได้เหมือนเดิม