Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: MySQL - while

Aktivity
Avatar
Kuba5
Člen
Avatar
Kuba5:22.5.2013 21:15

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
Tvůrce
Avatar
Odpovídá na Kuba5
matesax:22.5.2013 21:23

MySQL Provider

 
Nahoru Odpovědět
22.5.2013 21:23
Avatar
Kuba5
Člen
Avatar
Kuba5:22.5.2013 21:28

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 Hartinger
Vlastník
Avatar
Odpovídá na Kuba5
David Hartinger:23.5.2013 8:54

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
You are the greatest project you will ever work on.
Avatar
Kuba5
Člen
Avatar
Kuba5:23.5.2013 13:13

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.