Dnes som niekoľko hodín strávil trhaním si vlasov :), gúglením, testovaním a zisťovaním prečo mi v jednom VBS skripte v tranzakcii pri práci s MySQL databázou nefunguje rollback.
Otestoval som všetko možné aj nemožné, aj tak sa pri výskyte chyby v skripte všetky zmeny do databázy zapísali, aj keď boli obalené v tranzakcii a mali byť rollbacknuté, teda sa do databázy zapísať v žiadnom prípade nemali.Keď som si už vytrhal takmer všetky vlasy :) sa mi podarilo vygúgliť, že v tranzakcii sa nesmú nachádzať žiadne DDL príkazy (create table, drop table, truncate table…). Tieto sa totiž nedajú rollbacknúť, takže MySQL pred ich vykonaním spraví commit. V mojom skripte som tam ale mal zahrnuté príkazy create temporary table a truncate table. Keď som dal oba mimo tranzakcie, zrazu začalo všetko fungovať. Tak sa mi aspoň pár vlasov predsa len podarilo zachrániť :)