Grundlagen Eine Transaktion ist eine atomare Operation für eine Gruppe von SQL-Anweisungen. Das heißt, wenn in einer der SQL-Anweisungen der Gruppe ein Fehler auftritt, werden die anderen SQL-Anweisungen derselben Gruppe nicht ausgeführt. Sie können es als Test verwenden. Nachdem Sie eine Reihe von SQL-Anweisungen ausgeführt haben, können Sie überprüfen, ob die Ergebnisse korrekt sind. Wenn sie korrekt sind, können Sie sie übermitteln. Wenn sie nicht korrekt sind, können Sie ein Rollback durchführen und den ursprünglichen Zustand wiederherstellen. In MySQL werden alle Vorgänge standardmäßig automatisch festgeschrieben und beim Starten einer Transaktion manuell festgeschrieben. Grundlegende Verwendung Separat öffnen Einzelnes Öffnen bedeutet das Öffnen einer Transaktion für eine Gruppe von SQL-Anweisungen. CREATE TABLE Benutzer( ID INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, Name CHAR(12) NOT NULL, Saldo INT UNSIGNED ); -- Erstellen Sie eine Benutzertabelle INSERT INTO user(name,balance) VALUES ("Junja", 1000), ("Ken", 500); -- Daten einfügen, Transaktion starten; -- Eine Transaktion starten, alle Hinzufügungs-, Lösch- und Änderungsvorgänge müssen manuell übermittelt werden. UPDATE user SET balance = 500 WHERE name = "Yunya"; -- Yunya überweist 500 an Ken UPDATE Benutzer SET Guthaben = 1000 WHERE Name = "Ken"; SELECT * FROM user; -- Überprüfen Sie, ob ein Fehler vorliegt COMMIT; -- Übernehmen Sie die Transaktion: Übernehmen Sie die beiden oben genannten UPDATEs manuell -- ROLLBACK; -- Transaktions-Rollback: Verwenden Sie Rollback BEGIN, wenn der Überweisungsbetrag falsch ist. -- Schließen Sie die Transaktion ab, und alle Hinzufügungs-, Lösch- und Änderungsvorgänge werden automatisch festgeschrieben. Global aktiviert Wenn alle SQL-Anweisungen Transaktionsvorgänge verwenden, können wir die automatische Übermittlung mit SET AUTOCOMMIT=0 deaktivieren, um den Transaktionsmechanismus zu aktivieren, sodass alle Anweisungen vom Transaktionstyp sind. -- Automatisches Commit deaktivieren SET AUTOCOMMIT = 0; INSERT INTO Benutzer(Name, Guthaben) Werte ('Jack',8000); BEGEHEN; -- Automatisches Commit aktivieren SET AUTOCOMMIT = 1; Transaktionsisolierung Parallelitätsprobleme Wenn bei gleichzeitigem Zugriff auf mehrere Transaktionen Isolationsprobleme auftreten, kann Folgendes passieren: Dirty Read: Transaktion A liest die von Transaktion B aktualisierten Daten und setzt dann den Vorgang zurück. In diesem Fall sind die von A gelesenen Daten Dirty Data. Nicht wiederholbares Lesen: Transaktion A liest dieselben Daten mehrmals. Während Transaktion A die Daten mehrmals liest, aktualisiert und übergibt Transaktion B die Daten, was zu inkonsistenten Ergebnissen führt, wenn Transaktion A dieselben Daten mehrmals liest. Isolationsstufe Die Standardisolationsstufe des Systems ist Stufe 3 und es können Phantomlesevorgänge auftreten.
Abfrageeinstellungen Abfrageisolationsebene wählen Sie @@tx_isolation; Festlegen der Isolationsebene set session transaction isolation level read uncommitted; -- set session ist nur für die aktuelle Sitzung gültig, set global ist global gültig. Oben finden Sie Einzelheiten zur Verwendung von Transaktionen in MySQL. Weitere Informationen zu MySQL-Transaktionen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Vue verwendet Echart, um Beschriftungen und Farben anzupassen
Meine Empfehlung Lösung für die Koexistenz mehrer...
Aktuell besteht die Anforderung, dass beim Klicke...
Inhaltsverzeichnis Vorwort 1. Null-Koaleszenzoper...
Führen Sie zunächst eine einfache Docker-Installa...
1 Wirkung Demo-Adresse: https://www.albertyy.com/...
1. Ziehen Sie das Redis-Image docker pull redis 2...
Inhaltsverzeichnis WebAPI DOM DOM-Baum Methode zu...
1. Verwenden Sie Docker Compose, um den Start zu ...
Die Wirkung ist wie folgt: Beispiel 1 Beispiel 2:...
Schauen wir uns zunächst den Code an: ALTER TABLE...
Installieren der XML-Erweiterung in PHP Linux 1. ...
Inhaltsverzeichnis Vorwort Erster Blick auf React...
1. Vorbereitung vor der Installation Überprüfen S...
Das World Wide Web Consortium (W3C) hat einen Entw...
Szenario Sie müssen das Xshell-Tool verwenden, um...