ใช้ Syntax VALUES (val1), (val2), (val3), ... เพื่อ Insert หลายแถวในคำสั่งเดียว
ไวยากรณ์
INSERT INTO yourTableName(yourColumnName) VALUES ('value1'), ('value2'), ('value3'), ...;
ตัวอย่างการใช้งาน
สร้างตาราง:
mysql> create table InsertMultipleDemo (
-> Id int NOT NULL AUTO_INCREMENT,
-> UserName varchar(10),
-> UserRole varchar(20),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (3.14 sec)
Insert หลายค่าในคอลัมน์ UserRole ทีเดียว:
mysql> INSERT INTO InsertMultipleDemo(UserRole) VALUES ('Admin'), ('Author'), ('Driver'), ('Guest');
Query OK, 4 rows affected (0.17 sec)
ผลลัพธ์ (4 แถวถูกสร้าง Id auto increment):
mysql> SELECT UserRole FROM InsertMultipleDemo;
+----------+ | UserRole | +----------+ | Admin | | Author | | Driver | | Guest | +----------+
ข้อดี
- เร็วกว่า INSERT แยกหลายคำสั่ง (Single round-trip)
- Atomic - ทั้งสำเร็จหรือล้มเหลวทั้งหมด
- ลด Network overhead
จำกัด: max_allowed_packet ต้องพอสำหรับขนาดคิวรี่ทั้งหมด