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

Tự động chèn dãy số vào bảng MySQL bằng Stored Procedure

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.