Понякога може да се наложи да отмените промените, направени в базата данни на 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 улеснява визуализирането на данни за минути и наблюдение в табла за управление в реално време. Опитайте днес!