Tóm tắt: Trong hướng dẫn này, bạn sẽ tìm hiểu cách sử dụng một câu lệnh MySQL INSERT
để chèn nhiều hàng vào bảng.: in this tutorial, you will learn how to use a single MySQL INSERT
statement to insert multiple rows into a table.
MySQL INSERT
Câu lệnh nhiều hàng
Để chèn nhiều hàng vào bảng, bạn sử dụng hình thức sau của câu lệnh INSERT
:
Code language: SQL [Structured Query Language] [sql]
INSERT INTO table_name [column_list] VALUES [value_list_1], [value_list_2], ... [value_list_n];
Trong cú pháp này:
- Đầu tiên, chỉ định tên của bảng mà bạn muốn chèn sau từ khóa
0.
Code language: SQL [Structured Query Language] [sql]SHOW VARIABLES LIKE 'max_allowed_packet';
- Thứ hai, chỉ định một danh sách cột được phân tách bằng dấu phẩy bên trong dấu ngoặc đơn sau tên bảng.
- Thứ ba, chỉ định danh sách dữ liệu hàng được phân tách bằng dấu phẩy trong mệnh đề
1. Mỗi yếu tố của danh sách đại diện cho một hàng. Số lượng giá trị trong mỗi phần tử phải giống với số lượng cột trong
Code language: SQL [Structured Query Language] [sql]SHOW VARIABLES LIKE 'max_allowed_packet';
2.
Code language: SQL [Structured Query Language] [sql]SHOW VARIABLES LIKE 'max_allowed_packet';
MySQL INSERT
Giới hạn nhiều hàng
Về lý thuyết, bạn có thể chèn bất kỳ số lượng hàng nào bằng một câu lệnh INSERT
. Tuy nhiên, khi máy chủ MySQL nhận được câu lệnh INSERT
có kích thước lớn hơn
6, nó sẽ phát hành một lỗi quá lớn và chấm dứt kết nối.Code language: SQL [Structured Query Language] [sql]
SHOW VARIABLES LIKE 'max_allowed_packet';
Câu lệnh này cho thấy giá trị hiện tại của biến
6:Code language: SQL [Structured Query Language] [sql]
SHOW VARIABLES LIKE 'max_allowed_packet';
Code language: SQL [Structured Query Language] [sql]
SHOW VARIABLES LIKE 'max_allowed_packet';
Dưới đây là đầu ra trên máy chủ cơ sở dữ liệu MySQL của chúng tôi. Lưu ý rằng giá trị trong máy chủ của bạn có thể khác nhau.
Số là cột
8 là số byte.Code language: SQL [Structured Query Language] [sql]
SHOW VARIABLES LIKE 'max_allowed_packet';
Để đặt giá trị mới cho biến
6, bạn sử dụng câu lệnh sau:Code language: SQL [Structured Query Language] [sql]
SHOW VARIABLES LIKE 'max_allowed_packet';
Code language: SQL [Structured Query Language] [sql]
SET GLOBAL max_allowed_packet=size;
trong đó
0 là một số nguyên đại diện cho số lượng kích thước gói tối đa cho phép tính bằng byte.Code language: SQL [Structured Query Language] [sql]
SET GLOBAL max_allowed_packet=size;
Lưu ý rằng
6 không có ảnh hưởng đến câu lệnhCode language: SQL [Structured Query Language] [sql]
SHOW VARIABLES LIKE 'max_allowed_packet';
2. Câu lệnh
SET GLOBAL max_allowed_packet=size;
Code language: SQL [Structured Query Language] [sql]
2 có thể chèn bao nhiêu hàng tùy thích.Code language: SQL [Structured Query Language] [sql]
SET GLOBAL max_allowed_packet=size;
Hãy cùng lấy một ví dụ về việc sử dụng câu lệnh INSERT
nhiều hàng.
Đầu tiên, hãy tạo một bảng mới có tên
5 cho cuộc biểu tình:Code language: SQL [Structured Query Language] [sql]
SET GLOBAL max_allowed_packet=size;
Code language: SQL [Structured Query Language] [sql]
CREATE TABLE projects[ project_id INT AUTO_INCREMENT, name VARCHAR[100] NOT NULL, start_date DATE, end_date DATE, PRIMARY KEY[project_id] ];
Thứ hai, sử dụng câu lệnh INSERT
nhiều hàng để chèn hai hàng vào bảng
5:Code language: SQL [Structured Query Language] [sql]
SET GLOBAL max_allowed_packet=size;
Code language: SQL [Structured Query Language] [sql]
INSERT INTO projects[name, start_date, end_date] VALUES ['AI for Marketing','2019-08-01','2019-12-31'], ['ML for Sales','2019-05-15','2019-11-20'];
MySQL đã phát hành tin nhắn sau:
2 row[s] affected
Code language: SQL [Structured Query Language] [sql]
Điều đó có nghĩa là hai hàng đã được chèn vào bảng
5 thành công.Code language: SQL [Structured Query Language] [sql]
SET GLOBAL max_allowed_packet=size;
Lưu ý rằng khi bạn chèn nhiều hàng và sử dụng hàm
9 để nhận ID cuối cùng của cộtCode language: SQL [Structured Query Language] [sql]
SET GLOBAL max_allowed_packet=size;
0, bạn sẽ nhận được ID của hàng được chèn đầu tiên, không phải là ID của hàng chèn cuối cùng.Code language: SQL [Structured Query Language] [sql]
CREATE TABLE projects[ project_id INT AUTO_INCREMENT, name VARCHAR[100] NOT NULL, start_date DATE, end_date DATE, PRIMARY KEY[project_id] ];
Thứ ba, sử dụng câu lệnh
1 sau đây để xác minh các phần chèn:Code language: SQL [Structured Query Language] [sql]
CREATE TABLE projects[ project_id INT AUTO_INCREMENT, name VARCHAR[100] NOT NULL, start_date DATE, end_date DATE, PRIMARY KEY[project_id] ];
Code language: SQL [Structured Query Language] [sql]
SELECT * FROM projects;
Hình ảnh này cho thấy đầu ra:
Trong hướng dẫn này, bạn đã học được cách sử dụng câu lệnh MySQL INSERT
để chèn nhiều hàng vào bảng.
Hướng dẫn này có hữu ích không?