sql >> Base de Datos >  >> RDS >> Mysql

Insertar MySQL con ciclo while

No puedes usar WHILE como eso; consulte:mysql DECLARE WHILE fuera del procedimiento almacenado, ¿cómo?

Tienes que poner tu código en un procedimiento almacenado. Ejemplo:

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

Violín:http://sqlfiddle.com/#!2/a4f92/1

Alternativamente, genere una lista de INSERT declaraciones utilizando cualquier lenguaje de programación que desee; para una creación única, debería estar bien. Como ejemplo, aquí hay una frase de Bash:

for i in {2376921001..2376921099}; do echo "INSERT INTO mytable (code, active, total) VALUES ($i, 1, 1);"; done

Por cierto, cometiste un error tipográfico en tus números; 2376921001 tiene 10 dígitos, 237692200 solo 9.