Diskuze: MySQL - while

Ostatní jazyky SQL SQL a databáze MySQL - while

Avatar
Kuba5
Člen
Avatar
Kuba5:

Ahoj,

  1. potřebuji do tabulky (sloupce) vložit více záznamů najednou. Jedná se o čísla v řadě od třeba 2000 do 5000. Našel jsem, že by tohle měla dokázat fce while, šel jsem tedy do phpmyadmin a zkusil vložit tento kód:
CREATE PROCEDURE dowhile()
BEGIN
  DECLARE v1 INT DEFAULT 6100;

  WHILE v1 < 6177 DO
    INSERT INTO domestic (numbers) VALUES (v1);
    SET v1 = v1 + 1;
  END WHILE;
END;

Ale bohužel nelze...

Chyba

SQL-dotaz:

CREATE PROCEDURE dowhile( ) BEGIN DECLARE v1 INT DEFAULT 6100;

MySQL hlásí:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
  1. Btw. jde u C# proniknout do mysql podobně jako u PHP přes SQL Injection? Potřebuji to vědět, jestli mám používat databázi na mém VPS (ale mám na něm důležité soubory) nebo radši používat free webhosting.

Díky moc. :)

Editováno 22.5.2013 21:16
 
Odpovědět 22.5.2013 21:15
Avatar
matesax
Redaktor
Avatar
 
Nahoru Odpovědět 22.5.2013 21:23
Avatar
Kuba5
Člen
Avatar
Kuba5:

Já spojení funkční mám, myslel jsem hacknutí mysql.
Jinak to je ale vedlejší, teď bych potřeboval vyřešit první problém. :)

 
Nahoru Odpovědět 22.5.2013 21:28
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Kuba5
David Čápka:

Mně se zdá, že na to jdeš špatně. Pokud jsou čísla zasebou, stačí si někam ukládat poslední přidělené číslo. Proč mít proboha tolik čísel v DB?

Nahoru Odpovědět 23.5.2013 8:54
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Kuba5
Člen
Avatar
Kuba5:

Tak jsem konečně přišel na metodu, která skvěle funguje:

DELIMITER ;;
CREATE PROCEDURE dowhile()
BEGIN
  DECLARE v1 INT DEFAULT 6100;
  WHILE v1 < 6177 DO
    INSERT INTO domestic (numbers) VALUES (v1);
    SET v1 = v1 + 1;
  END WHILE;
END;;
DELIMITER ;

Pak už jen zavolat dowhile.

 
Nahoru Odpovědět 23.5.2013 13:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.