Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Inserção do MySQL com loop while


Você não pode usar WHILE Curtiu isso; veja:mysql DECLARE WHILE outside stored procedure como?

Você tem que colocar seu código em um procedimento armazenado. Exemplo:
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

Como alternativa, gere uma lista de INSERT declarações usando qualquer linguagem de programação que você goste; para uma criação única, deve ficar bem. Como exemplo, aqui está um one-liner do Bash:
for i in {2376921001..2376921099}; do echo "INSERT INTO mytable (code, active, total) VALUES ($i, 1, 1);"; done

A propósito, você cometeu um erro de digitação em seus números; 2376921001 possui 10 dígitos, 237692200 apenas 9.