Tạo bảng tạm và chèn hàng loạt dữ liệu trong MySQL
Bảng tạm (TEMPORARY TABLE) chỉ tồn tại trong session hiện tại, tự động xóa khi ngắt kết nối. Hỗ trợ chèn nhiều hàng trong một câu lệnh INSERT.
1. Tạo bảng tạm
mysql> CREATE TEMPORARY TABLE DemoTable (
SerialNumber INT
);
2. Chèn 8 giá trị trong một câu lệnh
mysql> INSERT INTO DemoTable VALUES (1),(2),(3),(4),(5),(6),(7),(8);
Kết quả: Query OK, 8 rows affected
3. Xem dữ liệu
mysql> SELECT * FROM DemoTable;
+--------------+ | SerialNumber | +--------------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | +--------------+
Đặc điểm bảng TEMPORARY:
- Chỉ hiển thị trong session tạo ra (connection khác không thấy)
- Tự động DROP khi session kết thúc
- Có thể trùng tên với bảng thường (bảng tạm ưu tiên)
- Không thể tham chiếu 2 lần trong cùng 1 truy vấn (MySQL limitation)
- Hỗ trợ INDEX, PRIMARY KEY, AUTO_INCREMENT
Cú pháp INSERT nhiều hàng (standard SQL):
INSERT INTO table (col1, col2) VALUES
(val1, val2), (val3, val4), (val5, val6), ...;
Ứng dụng thực tế:
- Xử lý trung gian trong stored procedure
- Lưu kết quả trung gian cho query phức tạp
- Test/debug không ảnh hưởng dữ liệu chính
- Import dữ liệu tạm trước khi validate và move sang bảng chính
Lưu ý: MySQL không hỗ trợ CREATE TEMPORARY TABLE ... LIKE (chỉ CREATE TABLE ... LIKE).