Nette database – multiple update

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
oldrich.valek
Člen | 21
+
0
-

Je možné pomocí nette database provést update více řádků tabulky najednou? s tím že pro každý ten řádek je upravovaná hodnota jiná. (v mém konkrétním případě jde o update jednoho sloupce všech řádků tabulky)

Např. seřadím záznamy pomocí jquery sortable, čímž získám třeba pole (id ⇒ poradi) a chci nové pořadí uložit.
Mně jsou známá tato řešení:

  1. Použít foreach a v něm po jednom řádku upravovat.
  2. Získat všechna data z tabulky, nějak do nich čistě v php dostat čerstvé pořadí, vymazat záznamy z tabulky a potom upravená data uložit asi pomocí multiple insert.

Je nějaká lepší možnost než bod 2?

Jan Mikeš
Člen | 771
+
0
-

Najednou to udelas maximalne takovymto slozenim dotazu: http://www.karlrixon.co.uk/…le-sql-query

Vymazavat a znovu pridavat se mi zda jako daleko vetsi zatez a zdlouhavejsi pro db nez update.

Takze kdyz uz tak radsi 1. Zpusob nez 2.

oldrich.valek
Člen | 21
+
0
-

Lexi napsal(a):

Najednou to udelas maximalne takovymto slozenim dotazu: http://www.karlrixon.co.uk/…le-sql-query

Vymazavat a znovu pridavat se mi zda jako daleko vetsi zatez a zdlouhavejsi pro db nez update.

Takze kdyz uz tak radsi 1. Zpusob nez 2.

Tohle jsem našel no. Jen jsem se zkusil zeptat, jestli to náhodou v nette database není nějak vyřešené…
Opravdu je lepší dělat třeba 20 dotazů na update než vymazat a vložit znovu? V těhle počtech na tom možná tolik nezáleží, ale co je obecně lepší?

Jan Mikeš
Člen | 771
+
0
-

Vzdyt to je presne ten odkaz ode me :D. Je to 1 dotaz do databaze, ne 20. Ale pokud bys to pouzit nechtel tak 100% mas lepsi updatovat pres foreach, predstav si situaci kdy mas 10000 zaznamu a poslednimu prehodis poradi s prvim – 10000 dotazu na update je porad lepsi nez 10000 deletu a 10000 insertu + select 10000 polozek.