sql >> Database >  >> RDS >> Mysql

MySQL-invoeging met While-lus

U kunt WHILE . niet gebruiken zoals dat; zie:mysql VERKLAREN TERWIJL buiten de opgeslagen procedure hoe?

U moet uw code in een opgeslagen procedure plaatsen. Voorbeeld:

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

Of genereer een lijst met INSERT uitspraken met behulp van elke programmeertaal die je leuk vindt; voor een eenmalige creatie zou het goed moeten zijn. Als voorbeeld is hier een Bash-oneliner:

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

Je hebt trouwens een typfout gemaakt in je cijfers; 2376921001 heeft 10 cijfers, 237692200 slechts 9.



  1. Inleiding tot native dynamische SQL in Oracle Database

  2. mysql converteert meerdere rijen naar kolommen in een enkele rij

  3. 2 manieren om uw zoekopdrachtresultaten op te maken in SQLcl (Oracle)

  4. TABLOCK versus TABLOCKX