Vấn đề: Bạn đang triển khai một dự án có sử dụng MySQL và cần chèn mẫu một lượng bản ghi (record) nhất định vào một bảng. Dữ liệu của mỗi bản ghi chỉ cần khác nhau mã ID (INT AUTO_INCREMENT PRIMARY KEY), các trường khác không quan tâm lắm - trùng cũng được.
Giải quyết:
- Cách 1: Viết một đoạn code bằng ngôn ngữ lập trình (PHP, Java...) dễ dàng tương tác với MySQL với một vòng lặp.
- Cách 2: Viết một procedure
- Cách 3: Đây là cách mà bài viết này trình bày cụ thể.
Schema (hay database name): mydb
Table: item
Fields: id, field1, field2, field3, field4, field5, field6, field7, field8
Bằng cách nào đó: chạy 1 câu lệnh SQL, nhập trực tiếp qua Tool, bạn có được 1 bản ghi đầu tiên.
Sau đó chạy query dưới đây 32 lần =)) xem sao
INSERT INTO item SELECT NULL, field1, field2, field3, field4, field5, field6, field7, field8 FROM item;
Làm sao lấy danh sách tên các cột nhanh nhất?
SELECT GROUP_CONCAT(COLUMN_NAME)
FROM information_schema.columns
WHERE COLUMN_NAME <> 'id'AND TABLE_SCHEMA = 'mydb' AND TABLE_NAME = 'item';