UPDATE
běží v transakci – je to atomic
operace, což znamená, že pokud jeden z řádků selže (například kvůli jedinečnému omezení), neaktualizuje žádný z 5000 řádků. Toto je jedna z vlastností ACID transakční databáze.
Z tohoto důvodu UPDATE
podržte zámek na všech řádcích pro celou transakci. Jinak může další transakce dále aktualizovat hodnotu řádku na základě jeho aktuální hodnoty (řekněme aktualizace záznamů nastavená hodnota =hodnota * '2'). Tento příkaz by měl přinést různé výsledky v závislosti na tom, zda se první transakce potvrdí nebo vrátí zpět. Z tohoto důvodu by měl počkat na první transakci, než dokončí všech 5000 aktualizací.
Pokud chcete uvolnit zámky, proveďte aktualizaci v (menších) dávkách.
P.S. autocommit
kontroluje, zda je každý příkaz vydán ve vlastní transakci, ale neovlivňuje provedení jednoho dotazu