Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung der MySQL-Transaktion zur Verwendung von Aufbewahrungspunkten und zum Ändern des Standard-Commit-Verhaltens

Detaillierte Erläuterung der MySQL-Transaktion zur Verwendung von Aufbewahrungspunkten und zum Ändern des Standard-Commit-Verhaltens

巴扎黑
巴扎黑Original
2017-05-19 15:16:423040Durchsuche

Verwenden Sie Aufbewahrungspunkte

Einfache ROLLBACK- und COMMIT-Anweisungen können ganze Transaktionen schreiben oder rückgängig machen. Dies ist jedoch nur für einfache Transaktionen möglich; komplexere Transaktionen erfordern möglicherweise ein teilweises Commit oder Rollback.

Zum Beispiel ist der zuvor beschriebene Vorgang des Hinzufügens einer Bestellung eine Transaktion. Wenn ein Fehler auftritt, kehren Sie einfach zu vor dem Hinzufügen der Auftragszeile zurück. Es besteht keine Notwendigkeit, auf die Kundentabelle zurückzugreifen (falls vorhanden).

Um das Zurücksetzen eines Teils einer Transaktion zu unterstützen, müssen Platzhalter an geeigneten Stellen im Transaktionsblock platziert werden. Auf diese Weise können Sie bei einem Rollback auf einen Platzhalter zurückgreifen.

Diese Platzhalter werden Retention Points genannt. Um einen Platzhalter zu erstellen, verwenden Sie die SAVEPOINT-Anweisung wie folgt:

Geben Sie Folgendes ein:

savepoint deletel;

Jeder Speicherpunkt erhält einen eindeutigen Namen, der ihn identifiziert, sodass MySQL beim Rollback weiß, wohin zurückgreifen. Um auf die in diesem Beispiel angegebenen Aufbewahrungspunkte zurückzugreifen, gehen Sie wie folgt vor:

Geben Sie ein:

rollback to deletel;

Je mehr Aufbewahrungspunkte, desto besser. Sie können beliebig viele Aufbewahrungspunkte festlegen Sie möchten im MySQL-Code, je mehr, desto besser. Warum? Denn je mehr Aufbewahrungspunkte Sie haben, desto größer ist die Flexibilität, die Sie bei Bedarf zurücksetzen können.

Aufbewahrungspunkt freigeben Der Aufbewahrungspunkt wird nach Abschluss der Transaktion automatisch freigegeben (führen Sie ein ROLLBACK oder COMMIT aus). Seit MySQL 5 ist es auch möglich, mit RELEASESAVEPOINT einen Retain-Punkt explizit freizugeben.


Ändern des Standard-Commit-Verhaltens

Wie bereits erwähnt, besteht das Standardverhalten von MySQL darin, alle automatisch zu committen Ändern. Mit anderen Worten: Jedes Mal, wenn Sie eine MySQL-Anweisung ausführen, wird die Anweisung tatsächlich für die Tabelle ausgeführt und die Änderungen werden sofort wirksam. Um MySQL anzuweisen, Änderungen nicht automatisch festzuschreiben, müssen Sie die folgende Anweisung verwenden:

Eingabe:

set autocommit = 0;

Analyse: Das Autocommit-Flag bestimmt, ob Änderungen automatisch festgeschrieben werden, unabhängig davon, ob diese vorhanden sind ist eine COMMIT-Anweisung. Wenn Sie autocommit auf 0 (false) setzen, wird MySQL angewiesen, Änderungen nicht automatisch zu committen (bis autocommit auf true gesetzt ist).

Flag ist verbindungsspezifisch Das Autocommit-Flag gilt für jede Verbindung und nicht für den Server.

[Verwandte Empfehlungen]

1. MySQL-kostenloses Video-Tutorial

2. MySQL-Transaktions-ROLLBACK, detaillierte Erklärung der COMMIT-Nutzung

3. Beispielerklärung für die MySQL-Transaktionsverarbeitung

4. MySQL UPDATE-Trigger (Update) und Auslöser einer eingehenden Analyse

5. Detaillierte Erläuterung der Verwendung des MySQL-Löschtriggers (Löschen)

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der MySQL-Transaktion zur Verwendung von Aufbewahrungspunkten und zum Ändern des Standard-Commit-Verhaltens. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn