MySQL i opcja ustawiania Autocommit

0

Mam pytanko. Czy jeżeli chcę rozpocząć jakąś dłuższą transakcje w MySQL i wywołuję ją np. przez BEGIN; to czy wcześniej zawsze muszę ustawić Autocommit=0 czy tez wywołanie BEGIN wyłącza na czas rozpoczętej transakcji autocommitowanie?

0

Każda operacja wykonywana na MySQL jest wykonywana w transakcji. Jeżeli nie uruchomisz jawnie transakcji, to każda pojedyncza operacja (SELECT, UPDATE itd) jest wykonywana w transakcji i automatycznie zakańczana. SET autocommit zmienia jedynie dla bieżącej sesji tryb kończenia transakcji. Przy autocommit=0 trzeba jawnie użyć polecenie COMMIT lub ROLLBACK aby zakończyć transakcję.

Jeżeli chcesz uruchomić jawnie transakcję, która będzie jawnie zakończona to robisz to poleceniem START TRANSACTION lub BEGIN a kończysz poleceniem COMMIT lub ROLLBACK. Wtedy masz pełną kontrolę nad transakcją i nie musisz korzystać z SET autocommit.

0

Dzięki : )

1 użytkowników online, w tym zalogowanych: 0, gości: 1