Bạn không thể sử dụng WHILE
như vậy đó; xem: mysql DECLARE WHILE bên ngoài quy trình được lưu trữ như thế nào?
Bạn phải đặt mã của mình trong một quy trình được lưu trữ. Ví dụ:
CREATE PROCEDURE myproc()
BEGIN
DECLARE i int DEFAULT 237692001;
WHILE i <= 237692004 DO
INSERT INTO mytable (code, active, total) VALUES (i, 1, 1);
SET i = i + 1;
END WHILE;
END
Fiddle: http://sqlfiddle.com/#!2/a4f92/1
Ngoài ra, tạo danh sách INSERT
câu lệnh sử dụng bất kỳ ngôn ngữ lập trình nào bạn thích; để tạo một lần, nó sẽ ổn. Ví dụ, đây là một lớp lót Bash:
for i in {2376921001..2376921099}; do echo "INSERT INTO mytable (code, active, total) VALUES ($i, 1, 1);"; done
Nhân tiện, bạn đã mắc lỗi đánh máy trong các con số của mình; 2376921001 có 10 chữ số, 237692200 chỉ có 9.