Twoje Centrum Szkoleniowe

Nauczmy się dziś czegoś nowego!

Kurs programowania - SQL

Transakcje (BEGIN, COMMIT, ROLLBACK) – zarządzanie grupami operacji

Transakcje to jeden z najważniejszych elementów pracy z bazami danych, szczególnie gdy mamy kilka operacji, które muszą być wykonane razem. Dzięki transakcjom możemy grupować operacje, aby mieć pewność, że albo wszystkie zakończą się pomyślnie, albo żadna z nich nie zostanie zastosowana. Dzięki temu unikamy sytuacji, w której tylko część operacji się powiedzie, co mogłoby prowadzić do niespójności danych.

Transakcje są przydatne, gdy wykonujemy wiele powiązanych operacji – na przykład aktualizacje w kilku tabelach, które muszą się udać jednocześnie. Do kontrolowania tych operacji używamy poleceń BEGIN, COMMIT i ROLLBACK.

Składniki Transakcji

Transakcja w bazie danych składa się z kilku kroków, które pomagają zarządzać operacjami:

1. Rozpoczęcie Transakcji (BEGIN)

Polecenie BEGIN rozpoczyna nową transakcję. Od tego momentu wszystkie operacje są traktowane jako część tej transakcji.

Przykład: Rozpoczęcie transakcji w celu zaktualizowania danych ucznia oraz jego ocen.

BEGIN;

UPDATE uczniowie SET imie = 'Jan', nazwisko = 'Kowalski' WHERE id = 1;

UPDATE oceny SET ocena = 5.0 WHERE uczen_id = 1;

2. Zatwierdzenie Transakcji (COMMIT)

Polecenie COMMIT zatwierdza wszystkie zmiany wykonane od momentu rozpoczęcia transakcji. Po COMMIT zmiany są trwale zapisane w bazie danych i nie można ich cofnąć.

Przykład: Zatwierdzenie zmian po aktualizacji danych ucznia i jego ocen.

COMMIT;

3. Wycofanie Transakcji (ROLLBACK)

Jeśli podczas trwania transakcji napotkamy błąd lub zdecydujemy, że chcemy cofnąć zmiany, używamy polecenia ROLLBACK. ROLLBACK cofa wszystkie zmiany wykonane od momentu rozpoczęcia transakcji, przywracając bazę do stanu sprzed transakcji.

Przykład: Cofnięcie transakcji, jeśli wystąpił błąd podczas aktualizacji.

ROLLBACK;

Przykład Użycia Transakcji

Rozważmy sytuację, w której chcemy zaktualizować dane ucznia w tabeli uczniowie oraz jego oceny w tabeli oceny. Obie operacje muszą się udać, aby baza danych pozostała spójna. Użycie transakcji zapewnia, że jeśli jedna operacja się nie powiedzie, żadne zmiany nie zostaną zapisane.

Przykład: Aktualizacja danych ucznia i jego ocen z użyciem transakcji.

BEGIN;

UPDATE uczniowie SET imie = 'Anna', nazwisko = 'Nowak' WHERE id = 2;

UPDATE oceny SET ocena = 4.5 WHERE uczen_id = 2;

COMMIT;

Przykład: Cofnięcie transakcji, jeśli wystąpi błąd podczas jednej z operacji.

W tym przypadku, jeśli podczas aktualizacji danych ucznia wystąpi błąd, cała transakcja jest cofana za pomocą ROLLBACK, co zapewnia, że żadne niepełne zmiany nie zostaną zapisane.

BEGIN;

UPDATE uczniowie SET imie = 'Anna', nazwisko = 'Nowak' WHERE id = 2;

-- Błąd podczas aktualizacji ocen
UPDATE oceny SET ocena = 'Błąd' WHERE uczen_id = 2;

ROLLBACK;

Testy przypięte do lekcji
Aby uzyskać dostęp do testów i ćwiczeń interaktywnych - Zaloguj się
Aby widzieć ocenę lekcji - Zaloguj się