Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Einfügung mit While-Schleife

Sie können WHILE nicht verwenden so wie das; siehe:mysql DECLARE WHILE outside Stored Procedure wie?

Sie müssen Ihren Code in eine gespeicherte Prozedur einfügen. Beispiel:

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

Geige:http://sqlfiddle.com/#!2/a4f92/1

Alternativ erzeugen Sie eine Liste von INSERT Anweisungen mit einer beliebigen Programmiersprache; Für eine einmalige Erstellung sollte es in Ordnung sein. Als Beispiel hier ein Bash-Einzeiler:

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

Übrigens ist Ihnen bei Ihren Zahlen ein Tippfehler unterlaufen; 2376921001 hat 10 Stellen, 237692200 nur 9.