vložení do DTB, použití insert nebo update
- Petr9
- Člen | 32
Čau chci se zeptat jak by se dalo nějak elegantně udělat věc kdyz potřebuju vložit radek do dtb, s tím že když už tam řadek s danym id je tak se jen updatuje(zvysise pocet)
Jediny co me napadlo je selectem zjistit zda tam je a pak podle podminky bud insert nebo update
Není něco lepšího?
Dík
- ViPEr*CZ*
- Člen | 813
No nic lepšího asi nebude… buď tu akci rozliší už sám uživatel nějakou vstupní akcí nebo se holt musí udělat jeden dotaz a podle jeho výsledku se udělat druhý dotaz. Řešil bych to (pokud je to možné) tak, že v DB bych si nastavil unikátnost nad nějakým sloupcem a poté zachytával vyjímku z databáze při pokusu o duplicitní vložení a následně na to bych zkusil update.
- ic
- Člen | 430
Něco na tenhle problém ale bylo ne? Já jdu vzpomínat XD
EDIT: už vím…
ON DUPLICATE KEY UPDATE
, to je přesně ono… provede se 1 dotaz,
ve kterém je insert i update, který se provede v případě, že dané
id
už je zastoupeno,
viz tadyk: http://dev.mysql.com/…plicate.html
Editoval ic (30. 7. 2012 20:51)
- Petr9
- Člen | 32
Ještě bych se chteěl zeptat když po oeslani formulare delam insert, ale kdyz uz existuje radek s tímto id tak udelam update, ale kdyz ve formulari se odeslou stejny data co sou v dtb, tak se update taky neprovede, jak udelat aby kdyz odesle stejny data co tam jiz sou ulozeny tak aby to nevyhodilo chybu ale program pokracoval dal?