Czasami może być konieczne cofnięcie zmian dokonanych w bazie danych MySQL. Możesz to łatwo zrobić za pomocą zapytania MySQL Rollback. Oto jak przywrócić bazę danych MySQL za pomocą polecenia MySQL Rollback.
Jak działa przywracanie danych MySQL
Instrukcja MySQL Rollback umożliwia wycofanie lub cofnięcie jeszcze jednej instrukcji, która została ostatnio wykonana. Na przykład, jeśli przypadkowo usunąłeś lub zaktualizowałeś wiersze, możesz użyć MySQL do wycofania tych instrukcji i przywrócenia oryginalnych baz danych. Jednak wycofanie MySQL działa tylko wtedy, gdy zmiany w bazie danych NIE zostały wprowadzone do bazy danych.
Przeczytaj bonus:Jak korzystać z pakietu zbiorczego MySQL
Czy możemy wycofać się po zatwierdzeniu w MySQL
Nie. Niestety nie można cofnąć zmian, które zostały wprowadzone do bazy danych.
Jak przywrócić bazę danych MySQL
Pamiętaj, że domyślnie MySQL jest skonfigurowany do automatycznego zatwierdzania każdego zapytania SQL. Dlatego ważne jest, aby wyłączyć automatyczne zatwierdzanie w MySQL za pomocą poniższej instrukcji, jeśli chcesz mieć możliwość korzystania z funkcji MySQL Rollback.
Zaloguj się do bazy danych MySQL i uruchom następujące polecenie, aby wyłączyć automatyczne zatwierdzanie
SET autocommit = 0
Lub
SET autocommit = OFF
Użyj następującej instrukcji, aby jawnie włączyć tryb automatycznego zatwierdzania:
SET autocommit = 1
Lub
SET autocommit = ON
Przeczytaj bonus:Jak sprawdzić wersję MySQL
Załóżmy, że masz następującą tabelę sprzedaż(produkt,data_zamówienia,sprzedaż) . Przyjrzymy się, jak wywołać wycofanie MySQL po poleceniu usuwania.
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 | +---------+------------+------+
Teraz wyłączmy automatyczne zatwierdzanie, jak wspomniano powyżej,
mysql> set autocommit=0;
Następnie usuńmy wszystkie wiersze w tabeli sprzedaży.
mysql> delete from sales; Query OK, 5 rows affected (0.00 sec) mysql> select count(*) from sales; +----------+ | count(*) | +----------+ | 0 | +----------+
Jak widać, wszystkie 5 wierszy w tabeli sprzedaży zostało usuniętych.
Teraz wydajmy MySQL Rollback po poleceniu usuwania
mysql> rollback; Query OK, 0 rows affected (0.07 sec) mysql> select count(*) from sales; +----------+ | count(*) | +----------+ | 5 | +----------+
Jak widać, 5 usuniętych wierszy zostało przywróconych, ponieważ zmiany nie zostały zatwierdzone. Jeśli jednak wystąpiła instrukcja COMMIT po usunięciu, a przed poleceniem ROLLBACK, to MySQL nie przywróciłby Twojej tabeli.
Przeczytaj bonus:Jak wyłączyć sprawdzanie klucza obcego w MySQL
Polecenie aktualizacji cofania MySQL
Podobnie możesz wycofać polecenie aktualizacji. Pozwól nam zaktualizować wyprzedaż kolumna powyżej sprzedaż tabela.
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 | +---------+------------+------+
Jak widać podwoiliśmy wartość kolumny sprzedaż. Teraz wycofajmy polecenie aktualizacji.
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 | +---------+------------+------+
Jak widać w kolumnie sprzedaży stare wartości zostały przywrócone.
Możesz również uwzględnić MySQL Rollback w procedurach składowanych i transakcjach MySQL dla MySQL Rollback w przypadku błędu. Kluczem jest wyłączenie automatycznego zatwierdzania, aby wykonać wycofanie MySQL.
Ubiq ułatwia wizualizację danych w ciągu kilku minut i monitorowanie w pulpitach nawigacyjnych w czasie rzeczywistym. Wypróbuj już dziś!