Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chèn nhiều hàng cùng lúc trong MySQL với một câu lệnh INSERT

MySQL cho phép chèn nhiều bản ghi trong một câu lệnh INSERT duy nhất bằng cách liệt kê nhiều bộ giá trị trong mệnh đề VALUES, cách nhau bằng dấu phẩy. Cách này hiệu quả hơn hẳn so với chạy nhiều câu INSERT riêng lẻ.

Tạo bảng

mysql> CREATE TABLE DemoTable (
    UserId INT,
    UserName VARCHAR(20),
    UserAge INT
);

Chèn 4 bản ghi cùng lúc

mysql> INSERT INTO DemoTable (UserId, UserName, UserAge) VALUES 
(100, 'John', 25),
(101, 'Larry', 24),
(102, 'Chris', 22),
(103, 'Carol', 27);
Query OK, 4 rows affected (0.16 sec)
Records: 4  Duplicates: 0  Warnings: 0

Kiểm tra dữ liệu

mysql> SELECT * FROM DemoTable;
+--------+----------+---------+
| UserId | UserName | UserAge |
+--------+----------+---------+
|    100 | John     |      25 |
|    101 | Larry    |      24 |
|    102 | Chris    |      22 |
|    103 | Carol    |      27 |
+--------+----------+---------+

Lợi ích

  • Giảm overhead giao tiếp mạng (network round-trips).
  • Tốc độ thực thi nhanh hơn đáng kể với dữ liệu lớn.
  • Đảm bảo tính nguyên tử (atomic) cho toàn bộ batch insert.

Lưu ý: Kích thước gói tin (packet size) giới hạn bởi max_allowed_packet. Với dữ liệu rất lớn, hãy chia thành nhiều batch hoặc tăng giá trị này.