Mysql
 sql >> база данни >  >> RDS >> Mysql

Заявка за връщане на MySQL

Понякога може да се наложи да отмените промените, направени в базата данни на MySQL. Можете лесно да го направите с MySQL Rollback заявка. Ето как да върнете MySQL база данни с помощта на командата MySQL Rollback.

Как работи връщането на MySQL назад

Инструкцията за връщане на MySQL ви позволява да връщате назад или да отмените още един оператор, който е бил наскоро изпълнен. Например, ако случайно сте изтрили или актуализирали редове, можете да използвате MySQL връщане на тези изрази и да възстановите оригиналните бази данни. Въпреки това, MySQL връщане работи само ако промените в базата данни НЕ са били записани в базата данни.

Бонус четене:Как да използвате MySQL Rollup

Можем ли да се върнем назад след комит в MySQL

Не. За съжаление не можете да отмените промените, които са били записани в базата данни.

Как да връщам MySQL база данни

Моля, имайте предвид, че по подразбиране MySQL е конфигуриран да зарежда автоматично всяка SQL заявка. Затова е важно да изключите автоматичното записване в MySQL, като използвате следното изявление, ако искате да можете да използвате MySQL Rollback.

Влезте в базата данни MySQL и изпълнете следната команда, за да деактивирате autocommit

SET autocommit = 0

Или

SET autocommit = OFF

Използвате следния израз, за ​​да активирате изрично режима на автоматично записване:

SET autocommit = 1

Или

SET autocommit = ON

Бонус четене:Как да проверите версията на MySQL

Да приемем, че имате следната таблица sales(product,order_date,sale) . Ще разгледаме как да издадем връщане на MySQL след команда за изтриване.

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 |
+---------+------------+------+

Сега нека изключим автоматичното записване, както беше споменато по-горе,

mysql> set autocommit=0;

След това нека изтрием всички редове в таблицата за продажби.

mysql> delete from sales;
Query OK, 5 rows affected (0.00 sec)

mysql> select count(*) from sales;
+----------+
| count(*) |
+----------+
|        0 |
+----------+

Както можете да видите, всички 5 реда в таблицата за продажби са изтрити.

Сега нека издадем MySQL Rollback след команда за изтриване

mysql> rollback;
Query OK, 0 rows affected (0.07 sec)

mysql> select count(*) from sales;
+----------+
| count(*) |
+----------+
|        5 |
+----------+

Както можете да видите, 5-те изтрити реда са възстановени, тъй като промените не са били записани. Ако обаче сте имали проблеми с оператора COMMIT след изтриване и преди командата ROLLBACK, тогава MySQL нямаше да възстанови вашата таблица.

Бонус четене:Как да деактивирате проверката на чужд ключ в MySQL

Команда за актуализация за връщане на MySQL

По същия начин можете да върнете командата за актуализация. Нека актуализираме разпродажбата колона в над продажби таблица.

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 |
+---------+------------+------+

Както можете да видите, удвоихме стойността на колоната за продажба. Сега нека върнем командата за актуализиране.

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 |
+---------+------------+------+

Както можете да видите колоната за продажба, старите стойности са възстановени.

Можете също да включите MySQL Rollback в съхранени процедури и MySQL транзакции за MySQL Rollback при грешка. Ключът е да деактивирате autocommit, за да изпълните MySQL rollback.

Ubiq улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. правилен синтаксис за използване близо до '?'

  2. Бавност, установена при избор и кодиране на изображение на база 64 от базата данни

  3. Как да получите броя на дните в месеца в MySQL

  4. MySQL - Как да изберете данни по дължина на низа

  5. mysql, итерирайте през имената на колони