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

Chèn nhiều hàng một câu lệnh MySQL (VALUES cách nhau bởi dấu phẩy)

Cú pháp INSERT INTO ... VALUES (..), (..), (..) cho phép chèn nhiều hàng trong một truy vấn duy nhất.

Ví dụ minh họa

Tạo bảng (engine MyISAM, AUTO_INCREMENT từ 1000):

mysql> CREATE TABLE IF NOT EXISTS DemoTable1343 (
    _ClientId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName VARCHAR(40), ClientProjectDeadline DATE
) ENGINE=MyISAM AUTO_INCREMENT=1000;

Chèn 4 hàng một lệnh:

mysql> INSERT INTO DemoTable1343(ClientName, ClientProjectDeadline)
    VALUES('Chris', '2019-09-24'), ('Bob', '2015-12-09'), ('Mike', '2017-01-20'), ('Carol', '2018-03-31');

Kết quả:

mysql> SELECT * FROM DemoTable1343;
+-----------+------------+-----------------------+
| _ClientId | ClientName | ClientProjectDeadline |
+-----------+------------+-----------------------+
| 1000      | Chris      | 2019-09-24            |
| 1001      | Bob        | 2015-12-09            |
| 1002      | Mike       | 2017-01-20            |
| 1003      | Carol      | 2018-03-31            |
+-----------+------------+-----------------------+

Ưu điểm:

  • Hiệu năng tốt hơn nhiều so với INSERT riêng lẻ (một lần parse, một lần commit).
  • Atomic: thành công tất cả hoặc thất bại tất cả (nếu không có trigger/error giữa chừng).
  • Giới hạn: max_allowed_packet (mặc định 4MB/64MB) - chia batch nếu dữ liệu lớn.