Nette database – multiple update
- oldrich.valek
- Člen | 21
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í:
- Použít foreach a v něm po jednom řádku upravovat.
- 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
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
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
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.