O lekcji
START TRANSACTION, COMMIT, ROLLBACK
Transakcja to zestaw zapytań SQL, które wykonują się jako całość. Transakcje pomagają zapewnić, że dane pozostają integralne w sytuacjach, takich jak awarie systemu.
Kluczowe instrukcje:
START TRANSACTION
– Rozpoczyna transakcję.COMMIT
– Zatwierdza zmiany w bazie danych.ROLLBACK
– Wycofuje zmiany w przypadku błędu.
Przykład:
START TRANSACTION;
UPDATE konta SET saldo = saldo - 100 WHERE id = 1;
UPDATE konta SET saldo = saldo + 100 WHERE id = 2;
COMMIT;
W tym przykładzie pieniądze są przenoszone z jednego konta na drugie. Jeśli wystąpi błąd, możemy wycofać zmiany:
ROLLBACK;
Zarządzanie transakcjami w praktyce
Jednym z podstawowych zastosowań transakcji jest ochrona przed niekompletnymi operacjami, które mogą doprowadzić do niezgodnych danych.
Przykład praktyczny: Wycofanie pieniędzy z bankomatu:
- Zmniejsz saldo użytkownika.
- Dodaj transakcję do historii.
- Jeśli którekolwiek zapytanie się nie powiedzie:
- Przywróć poprzedni stan (
ROLLBACK
).
- Przywróć poprzedni stan (
Kod:
START TRANSACTION;
-- Zmniejszenie salda
UPDATE konta SET saldo = saldo - 200 WHERE id = 1;
-- Zapisanie transakcji
INSERT INTO historia_transakcji (id, kwota, typ) VALUES (1, 200, 'Wypłata');
IF ERROR THEN
ROLLBACK;
ELSE
COMMIT;
END IF;