Às vezes você pode precisar desfazer as alterações feitas no banco de dados MySQL. Você pode fazer isso facilmente usando a consulta MySQL Rollback. Veja como reverter o banco de dados MySQL usando o comando MySQL Rollback.
Como funciona a reversão do MySQL
A instrução MySQL Rollback permite reverter ou desfazer mais uma instrução que foi executada recentemente. Por exemplo, se você excluiu ou atualizou linhas acidentalmente, pode usar o MySQL para reverter essas instruções e restaurar os bancos de dados originais. No entanto, a reversão do MySQL funciona apenas se as alterações do banco de dados NÃO tiverem sido confirmadas no banco de dados.
Bônus de leitura:Como usar o MySQL Rollup
Podemos reverter após o commit no MySQL
Não. Infelizmente, você não pode desfazer as alterações que foram confirmadas no banco de dados.
Como reverter o banco de dados MySQL
Observe que, por padrão, o MySQL está configurado para confirmar automaticamente todas as consultas SQL. Portanto, é importante desativar a confirmação automática no MySQL usando a instrução a seguir, se você quiser usar o MySQL Rollback.
Faça login no banco de dados MySQL e execute o seguinte comando para desabilitar o autocommit
SET autocommit = 0
Ou
SET autocommit = OFF
Você usa a seguinte instrução para habilitar o modo de confirmação automática explicitamente:
SET autocommit = 1
Ou
SET autocommit = ON
Bônus de leitura:Como verificar a versão do MySQL
Digamos que você tenha a seguinte tabela sales(product,order_date,sale) . Veremos como emitir o rollback do MySQL após o comando delete.
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 | +---------+------------+------+
Agora vamos desligar o autocommit como mencionado acima,
mysql> set autocommit=0;
Em seguida, vamos excluir todas as linhas da tabela de vendas.
mysql> delete from sales; Query OK, 5 rows affected (0.00 sec) mysql> select count(*) from sales; +----------+ | count(*) | +----------+ | 0 | +----------+
Como você pode ver, todas as 5 linhas da tabela de vendas foram excluídas.
Agora, vamos emitir o MySQL Rollback após o comando delete
mysql> rollback; Query OK, 0 rows affected (0.07 sec) mysql> select count(*) from sales; +----------+ | count(*) | +----------+ | 5 | +----------+
Como você pode ver, as 5 linhas excluídas foram restauradas porque as alterações não foram confirmadas. No entanto, se você tivesse problemas com a instrução COMMIT após a exclusão e antes do comando ROLLBACK, o MySQL não teria restaurado sua tabela.
Bônus de leitura:Como desativar a verificação de chave estrangeira no MySQL
Comando de atualização de reversão do MySQL
Da mesma forma, você pode reverter o comando de atualização. Vamos atualizar a venda coluna acima de vendas 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 | +---------+------------+------+
Como você pode ver, dobramos o valor da coluna de venda. Agora vamos reverter o comando de atualização.
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 | +---------+------------+------+
Como você pode ver, os valores antigos da coluna de venda foram restaurados.
Você também pode incluir MySQL Rollback em procedimentos armazenados e transações MySQL para MySQL Rollback em caso de erro. A chave é desabilitar o autocommit para executar o rollback do MySQL.
O Ubiq facilita a visualização de dados em minutos e o monitoramento em painéis em tempo real. Experimente hoje!