MySQL không có câu lệnh sinh dãy số trực tiếp, nhưng bạn có thể viết Stored Procedure với vòng lặp WHILE để chèn hàng loạt.
Ví dụ: Chèn số từ 10 đến 20
Tạo bảng:
mysql> CREATE TABLE DemoTable (Value INT);
Tạo thủ tục:
mysql> DELIMITER //
mysql> CREATE PROCEDURE AutoInsertValuesToTable()
-> BEGIN
-> DECLARE startingRange INT DEFAULT 10;
-> WHILE startingRange <= 20 DO
-> INSERT INTO DemoTable(Value) VALUES (startingRange);
-> SET startingRange = startingRange + 1;
-> END WHILE;
-> END //
mysql> DELIMITER ;
Gọi thủ tục:
mysql> CALL AutoInsertValuesToTable();
Kiểm tra:
mysql> SELECT * FROM DemoTable;
Kết quả
+-------+ | Value | +-------+ | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | +-------+
Lưu ý: Phải đổi DELIMITER trước khi tạo thủ tục (thường dùng //), sau đó đổi lại ;. Trong ứng dụng thực tế, cân nhắc dùng INSERT ... SELECT từ bảng số (numbers table) hoặc CTE (MySQL 8.0+) để hiệu năng tốt hơn.