Kursy i Poradniki IT - Adrian Kowalski
Kurs SQL dla Początkujących
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:

  1. Zmniejsz saldo użytkownika.
  2. Dodaj transakcję do historii.
  3. Jeśli którekolwiek zapytanie się nie powiedzie:
    • Przywróć poprzedni stan (ROLLBACK).

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;