Sobes.tech
Middle

Welche Transaktionsverwaltungsbefehle kennen Sie?

sobes.tech KI

Antwort von AI

BEGIN (kann implizit sein), COMMIT, ROLLBACK.

  • BEGIN: Startet eine neue Transaktion. Ist optional für den ersten DML-Operator in einer Sitzung, da die Transaktion implizit gestartet wird.

    BEGIN TRANSACTION;
    
  • COMMIT: Speichert alle Änderungen, die in der aktuellen Transaktion gemacht wurden, und beendet sie.

    COMMIT;
    
  • ROLLBACK: Macht alle Änderungen rückgängig, die in der aktuellen Transaktion gemacht wurden, und beendet sie.

    ROLLBACK;
    

Einige Datenbanken unterstützen auch:

  • SAVEPOINT: Setzt einen Speicherpunkt innerhalb der aktuellen Transaktion. Ermöglicht das Zurücksetzen zu diesem Punkt, ohne die gesamte Transaktion abzubrechen.

    SAVEPOINT my_savepoint;
    
  • ROLLBACK TO SAVEPOINT: Macht die Änderungen bis zu dem angegebenen Speicherpunkt rückgängig.

    ROLLBACK TO SAVEPOINT my_savepoint;
    
  • RELEASE SAVEPOINT: Entfernt den Speicherpunkt.

    RELEASE SAVEPOINT my_savepoint;
    

Beispiel für eine Befehlssequenz:

BEGIN; -- Transaktion starten

INSERT INTO users (name) VALUES ('Alice'); -- Operation ausführen

SAVEPOINT before_update; -- Speicherpunkt setzen

UPDATE products SET price = price * 1.1 WHERE id = 1; -- weitere Operation

-- Wenn bei der Aktualisierung etwas schief läuft, zum Speicherpunkt zurückkehren
-- ROLLBACK TO SAVEPOINT before_update;

-- Wenn alles gut läuft, Änderungen bestätigen
COMMIT; -- Transaktion beenden und Änderungen speichern

-- Wenn die gesamte Transaktion nach BEGIN abgebrochen werden soll
-- ROLLBACK;

Das Verständnis dieser Befehle ist entscheidend, um die Datenintegrität in Anwendungen, die mit relationalen Datenbanken arbeiten, zu gewährleisten.