Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie o wycofanie MySQL

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ś!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przewodnik po projektowaniu bazy danych dla systemu zamówień restauracji w MySQL

  2. Jak usunąć wiodące białe znaki w MySQL?

  3. Jak przekonwertować IPv6 z binarnego do przechowywania w MySQL?

  4. Jak konwertować małe litery na wielkie w MySQL

  5. Jak zresetować hasło roota MySQL