Transakcje SQL – można wykonać rollback czy nie można

Nadchodzi taki dzień kiedy developer zaczyna wykorzystywać transakcje w  SQL. Jest to bardzo użyteczne. Serio.

Jeśli nie wiesz co to jest transakcja w SQL, sprawdź pełną definicję w  wikipedia. ;o) W skrócie – jest to grupa zapytań która pozwala nam grupować inne zapytania i jeśli pójdzie coś nie tak w jednym z nim możemy wycofać zmiany. Wykonać tak zwany rollback. Oczywiście grupujemy zapytania kierując się jakąś logiką.

Pierwsze o czym należy pamiętać, to fakt, że nie wszystkie wyniki zapytań mogą zostać wycofane. Poniższe grupy zapytań są najczęściej wykorzystywane.

DML – Data Manipulation Language –  jak SELECT, INSERT, UPDATE, DELETE –  efekty wykoniania tych instrukcji możemy wycofać.

DDL – Data Definition Language – jak CREATE, DROP, ALTER – efekty wykonania tych instrukcji nie możemy wycofać.

Informaycjnie, jest jeszcze DCL (Data Control Language) i nasz TCL (Transaction Control).

W zasadzie chcę powiedzieć, aby nigdy przenigdy nie wykorzystywać instrukcji DDL w transakcjach ;o)

Jeśli połączysz CREATE z INSERT a następnie dodasz UPDATE w jednej transakcji (zauważ CREATE jest z DDL i nie może zostać wycofany) i jeśli wykonanie UPDATE nie powiedzie się, efektów z poprzednich zapytań nie będzie można wycofać.

0 0 vote
Article Rating