MariaDB - Transaktionen
Transaktionen sind sequentielle Gruppenoperationen. Sie fungieren als eine Einheit und werden erst beendet, wenn alle Vorgänge innerhalb der Gruppe erfolgreich ausgeführt wurden. Ein einzelner Fehler in der Gruppe führt dazu, dass die gesamte Transaktion fehlschlägt und keine Auswirkungen auf die Datenbank hat.
Transaktionen entsprechen ACID (Atomizität, Konsistenz, Isolierung und Haltbarkeit) -
Atomicity - Es stellt den Erfolg aller Vorgänge sicher, indem Fehler abgebrochen und Änderungen rückgängig gemacht werden.
Consistency - Es stellt sicher, dass die Datenbank Änderungen bei einer erfolgreichen Transaktion anwendet.
Isolation - Es ermöglicht den unabhängigen Transaktionsbetrieb von Transaktionen.
Durability - Es stellt die Persistenz einer erfolgreichen Transaktion im Falle eines Systemausfalls sicher.
Am Anfang einer Transaktionsanweisung steht die Anweisung START TRANSACTION, gefolgt von den Anweisungen COMMIT und ROLLBACK.
START TRANSACTION startet die Transaktion.
COMMIT speichert Änderungen an Daten.
ROLLBACK beendet die Transaktion und zerstört alle Änderungen.
Bei einer erfolgreichen Transaktion handelt COMMIT. Bei einem Fehler handelt ROLLBACK.
Note- Einige Anweisungen verursachen ein implizites Festschreiben, und sie verursachen auch einen Fehler, wenn sie in Transaktionen verwendet werden. Beispiele für solche Anweisungen sind unter anderem CREATE, ALTER und DROP.
MariaDB-Transaktionen enthalten auch Optionen wie SAVEPOINT und LOCK TABLES. SAVEPOINT legt einen Wiederherstellungspunkt fest, der mit ROLLBACK verwendet werden soll. Mit LOCK TABLES können Sie den Zugriff auf Tabellen während Sitzungen steuern, um Änderungen in bestimmten Zeiträumen zu vermeiden.
Die Variable AUTOCOMMIT bietet Kontrolle über Transaktionen. Eine Einstellung von 1 erzwingt, dass alle Vorgänge als erfolgreiche Transaktionen betrachtet werden, und eine Einstellung von 0 bewirkt, dass Änderungen nur in einer expliziten COMMIT-Anweisung fortbestehen.
Struktur einer Transaktion
Die allgemeine Struktur einer Transaktionsanweisung besteht darin, mit START TRANSACTION zu beginnen. Der nächste Schritt besteht darin, einen oder mehrere Befehle / Operationen einzufügen, Anweisungen einzufügen, die auf Fehler prüfen, ROLLBACK-Anweisungen einzufügen, um erkannte Fehler zu verwalten, und schließlich eine COMMIT-Anweisung einzufügen, um Änderungen auf erfolgreiche Operationen anzuwenden.
Überprüfen Sie das folgende Beispiel -
START TRANSACTION;
SELECT name FROM products WHERE manufacturer = 'XYZ Corp';
UPDATE spring_products SET item = name;
COMMIT;