sql >> Database teknologi >  >> RDS >> Mysql

MySQL-indsæt med While Loop

Du kan ikke bruge WHILE sådan; se:mysql DECLARE WHILE outside stored procedure how?

Du skal indsætte din kode i en lagret procedure. Eksempel:

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

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

Alternativt kan du generere en liste over INSERT udsagn, der bruger et hvilket som helst programmeringssprog, du kan lide; for en engangskreation burde det være fint. Som et eksempel er her en Bash one-liner:

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

Du lavede i øvrigt en tastefejl i dine tal; 2376921001 har 10 cifre, 237692200 kun 9.



  1. Opbygning af en maskinlæringsmodel med SQL Server, ML.NET og C#

  2. Spring Data @CreatedDate annotering virker ikke for mig

  3. mysql glemmer, hvem der er logget ind:kommando nægtet til bruger ''@'%'

  4. Hvordan bruger man MySQL Found_Rows() i PHP?