Transaction Control Language (TCL) ist ein Teil der SQL-Sprache, der verwendet wird, um die Kontrolle über Transaktionen in einer Datenbank zu ermöglichen. Eine Transaktion ist eine logische Einheit von Arbeit, die eine oder mehrere SQL-Anweisungen umfasst – oft Insert-, Update- oder Delete-Befehle –, die zusammen ausgeführt werden sollen.
TCL stellt Befehle bereit, um sicherzustellen, dass Transaktionen korrekt abgeschlossen oder im Fehlerfall rückgängig gemacht werden.
| Befehl | Beschreibung |
|---|---|
COMMIT |
Speichert alle Änderungen der aktuellen Transaktion dauerhaft in der Datenbank. |
ROLLBACK |
Macht alle Änderungen seit dem letzten COMMIT rückgängig. |
SAVEPOINT |
Legt einen Zwischenstand in einer Transaktion fest, zu dem man später zurückkehren kann. |
ROLLBACK TO SAVEPOINT |
Macht alle Änderungen seit einem bestimmten Savepoint rückgängig. |
SET TRANSACTION |
Legt Eigenschaften für eine Transaktion fest (z. B. Isolationsgrad). |
BEGIN;
UPDATE konto SET saldo = saldo - 100 WHERE konto_id = 1;
UPDATE konto SET saldo = saldo + 100 WHERE konto_id = 2;
COMMIT;
→ Beide Updates werden gemeinsam abgeschlossen. Wenn ein Fehler auftritt, könnte man ROLLBACK ausführen, um beide Änderungen zu verwerfen.
TCL-Befehle wirken nur bei Datenbank-Systemen, die Transaktionen unterstützen (z. B. PostgreSQL, Oracle, MySQL mit InnoDB).