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

Chèn nhiều giá trị cho một cột trong MySQL (Multiple Inserts)

MySQL cho phép chèn nhiều hàng cho một cột trong một câu lệnh INSERT duy nhất.

Cú pháp

INSERT INTO ten_bang(ten_cot) VALUES ('gia_tri_1'), ('gia_tri_2'), ('gia_tri_3'), ...;

Ví dụ minh họa

Tạo bảng:

mysql> CREATE TABLE InsertMultipleDemo (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> UserName VARCHAR(10),
    -> UserRole VARCHAR(20),
    -> PRIMARY KEY(Id)
    -> );

Chèn 4 giá trị cho cột UserRole một lần:

mysql> INSERT INTO InsertMultipleDemo(UserRole) 
    -> VALUES('Admin'), ('Author'), ('Driver'), ('Guest');
Query OK, 4 rows affected (0.17 sec)

Kết quả:

+----------+
| UserRole |
+----------+
| Admin    |
| Author   |
| Driver   |
| Guest    |
+----------+

Lợi ích

  • Giảm round-trip network (1 lần giao tiếp thay vì 4 lần)
  • Tăng hiệu suất bulk insert đáng kể
  • Atomic: hoặc toàn bộ thành công, hoặc toàn bộ thất bại

Lưu ý

  • Các cột không chỉ định sẽ nhận giá trị DEFAULT hoặc NULL (nếu cho phép)
  • Id tự động tăng sẽ gán liên tiếp: 1, 2, 3, 4
  • Giới hạn độ dài packet: max_allowed_packet (mặc định 4MB/64MB)
  • Với dữ liệu lớn, chia thành batch 1000-5000 hàng/lần