„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erreicht man Transaktionsverhalten in gespeicherten MySQL-Prozeduren?

Wie erreicht man Transaktionsverhalten in gespeicherten MySQL-Prozeduren?

Veröffentlicht am 12.11.2024
Durchsuche:248

How to Achieve Transactional Behavior in MySQL Stored Procedures?

Transaktionale gespeicherte Prozeduren in MySQL

Durch die transaktionale Ausführung mehrerer SQL-Anweisungen innerhalb einer gespeicherten Prozedur wird sichergestellt, dass entweder alle Anweisungen erfolgreich oder nicht ausgeführt werden überhaupt ausführen. Dieses Verhalten ist entscheidend für die Aufrechterhaltung der Datenkonsistenz und -integrität. So können Sie Transaktionen in Ihrer gespeicherten MySQL-Prozedur erreichen:

Syntaxfehlerkorrektur

In Ihrem bereitgestellten Codeausschnitt gibt es zwei Syntaxfehler, die die gespeicherte Prozedur verhindern davon ab, transaktional zu werden. Die korrekte Syntax lautet wie folgt:

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING
BEGIN
    ROLLBACK;
END;

Dieser Code deklariert einen Exit-Handler, der alle Änderungen automatisch rückgängig macht, wenn während der Ausführung der gespeicherten Prozedur eine SQL-Ausnahme oder Warnung auftritt. Die Kommas zwischen den Bedingungen für den Exit-Handler und dem Semikolon am Ende der DECLARE-Anweisung sind entscheidend für das ordnungsgemäße Funktionieren der gespeicherten Prozedur.

Beispiel

Einmal Da die Syntaxfehler korrigiert wurden, kann die gespeicherte Prozedur transaktional gemacht werden, indem die SQL-Anweisungen in einen START TRANSACTION...COMMIT-Block eingeschlossen werden. Hier ist ein Beispiel für eine transaktionale gespeicherte Prozedur:

BEGIN

DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING
BEGIN
    ROLLBACK;
END;

START TRANSACTION;

    -- Your SQL statements here

COMMIT;

END

Verwendung

Um die transaktionale gespeicherte Prozedur zu verwenden, rufen Sie sie einfach aus Ihrem Anwendungscode als reguläre gespeicherte Prozedur auf. Wenn alle SQL-Anweisungen innerhalb der gespeicherten Prozedur erfolgreich ausgeführt werden, werden diese Änderungen durch die COMMIT-Anweisung dauerhaft in der Datenbank gespeichert. Wenn eine SQL-Ausnahme oder Warnung auftritt, macht die ROLLBACK-Anweisung automatisch alle Änderungen rückgängig.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3