Manchmal müssen Sie möglicherweise die an der MySQL-Datenbank vorgenommenen Änderungen rückgängig machen. Sie können dies ganz einfach mit der MySQL-Rollback-Abfrage tun. Hier erfahren Sie, wie Sie die MySQL-Datenbank mit dem MySQL-Rollback-Befehl zurücksetzen.
Wie funktioniert MySQL-Rollback?
Mit der MySQL-Rollback-Anweisung können Sie eine oder mehrere kürzlich ausgeführte Anweisungen rückgängig machen oder rückgängig machen. Wenn Sie beispielsweise versehentlich Zeilen gelöscht oder aktualisiert haben, können Sie diese Anweisungen mit MySQL zurücksetzen und die ursprünglichen Datenbanken wiederherstellen. Das MySQL-Rollback funktioniert jedoch nur, wenn die Datenbankänderungen NICHT in die Datenbank übernommen wurden.
Bonus-Lesetext:Verwendung von MySQL Rollup
Können wir nach dem Festschreiben in MySQL ein Rollback durchführen
Nein. Leider können Sie Änderungen, die an die Datenbank übertragen wurden, nicht rückgängig machen.
So führen Sie ein Rollback der MySQL-Datenbank durch
Bitte beachten Sie, dass MySQL standardmäßig so konfiguriert ist, dass jede SQL-Abfrage automatisch festgeschrieben wird. Daher ist es wichtig, die automatische Festschreibung in MySQL mit der folgenden Anweisung auszuschalten, wenn Sie MySQL Rollback verwenden möchten.
Melden Sie sich bei der MySQL-Datenbank an und führen Sie den folgenden Befehl aus, um Autocommit zu deaktivieren
SET autocommit = 0
Oder
SET autocommit = OFF
Sie verwenden die folgende Anweisung, um den Autocommit-Modus explizit zu aktivieren:
SET autocommit = 1
Oder
SET autocommit = ON
Bonuslektüre:So überprüfen Sie die MySQL-Version
Nehmen wir an, Sie haben die folgende Tabelle sales(product,order_date,sale) . Wir werden uns ansehen, wie MySQL-Rollback nach dem Löschbefehl ausgeführt wird.
mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | A | 2020-01-01 | 20 | | B | 2020-01-02 | 25 | | B | 2020-01-03 | 15 | | A | 2020-01-04 | 30 | | A | 2020-01-05 | 20 | +---------+------------+------+
Lassen Sie uns nun die Autocommit-Funktion wie oben erwähnt ausschalten,
mysql> set autocommit=0;
Lassen Sie uns als Nächstes alle Zeilen in der Verkaufstabelle löschen.
mysql> delete from sales; Query OK, 5 rows affected (0.00 sec) mysql> select count(*) from sales; +----------+ | count(*) | +----------+ | 0 | +----------+
Wie Sie sehen können, wurden alle 5 Zeilen in der Verkaufstabelle gelöscht.
Lassen Sie uns nun MySQL Rollback nach dem Löschbefehl ausführen
mysql> rollback; Query OK, 0 rows affected (0.07 sec) mysql> select count(*) from sales; +----------+ | count(*) | +----------+ | 5 | +----------+
Wie Sie sehen können, wurden die 5 gelöschten Zeilen wiederhergestellt, da die Änderungen nicht festgeschrieben wurden. Wenn Sie jedoch nach dem Löschen und vor dem ROLLBACK-Befehl Probleme mit der COMMIT-Anweisung gehabt hätten, hätte MySQL Ihre Tabelle nicht wiederhergestellt.
Bonuslektüre:So deaktivieren Sie die Fremdschlüsselprüfung in MySQL
MySQL-Rollback-Update-Befehl
Ebenso können Sie den Update-Befehl rückgängig machen. Lassen Sie uns das Angebot aktualisieren Spalte in den obigen Verkäufen Tabelle.
mysql> set autocommit=0; mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | A | 2020-01-01 | 20 | | B | 2020-01-02 | 25 | | B | 2020-01-03 | 15 | | A | 2020-01-04 | 30 | | A | 2020-01-05 | 20 | +---------+------------+------+ 5 rows in set (0.00 sec) mysql> update sales set sale=sale*2; Query OK, 5 rows affected (0.05 sec) mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | A | 2020-01-01 | 40 | | B | 2020-01-02 | 50 | | B | 2020-01-03 | 30 | | A | 2020-01-04 | 60 | | A | 2020-01-05 | 40 | +---------+------------+------+
Wie Sie sehen können, haben wir den Wert der Verkaufsspalte verdoppelt. Lassen Sie uns nun den Update-Befehl zurücksetzen.
mysql> rollback; mysql> select * from sales; +---------+------------+------+ | product | order_date | sale | +---------+------------+------+ | A | 2020-01-01 | 20 | | B | 2020-01-02 | 25 | | B | 2020-01-03 | 15 | | A | 2020-01-04 | 30 | | A | 2020-01-05 | 20 | +---------+------------+------+
Wie Sie sehen können, wurden die alten Werte der Verkaufsspalte wiederhergestellt.
Sie können MySQL-Rollback auch in gespeicherte Prozeduren und MySQL-Transaktionen für MySQL-Rollback bei Fehler einschließen. Der Schlüssel ist, Autocommit zu deaktivieren, um MySQL-Rollback auszuführen.
Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!