Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

UPDATE produtos SET EMBALAGEM = 'PET', TAMANHO = '1 Litro', DESCRITOR = 'Sabor da Montanha - 1 Litro - Uva';

se eu rodar o comando UPDATE produtos SET EMBALAGEM = 'PET', TAMANHO = '1 Litro', DESCRITOR = 'Sabor da Montanha - 1 Litro - Uva'; sem o 'WHERE', toda a tabela será alterada com os mesmos dados do comando, existe uma forma de desfazer essa alteração?

2 respostas
solução!

Oi, Joathan! Tudo certo por aí?

Existem sim algumas maneiras de reverter ações que foram aplicadas a todos os registros de uma tabela, como um UPDATE. No entanto, tais formas precisam ser pensadas previamente — caso contrário, infelizmente não conseguiremos recuperar os dados.

A primeira opção é realizar constantemente backups do nosso banco de dados. Assim, quando um incidente ocorrer, basta voltarmos a uma de suas versões anteriores.

Além disso, existe uma segunda opção, que é trabalhar com transações, as quais têm como objetivo controlar as operações feitas em nosso banco de dados, sempre presando pela segurança e pela integridade.

Uma transação é composta pelos seguintes itens:

  • START TRANSACTION, comando que afirma o início de uma transação;
  • Sequência de operações que desejamos executar (como um UPDATE, INSERT ou DELETE, por exemplo);
  • COMMIT (comando que confirma as operações feitas) ou ROLLBACK (comando que reverte as operações feitas).

Para uma melhor compreensão, observe o script SQL abaixo:

START TRANSACTION;
UPDATE produtos SET EMBALAGEM = 'PET', TAMANHO = '1 Litro', DESCRITOR = 'Sabor da Montanha - 1 Litro - Uva';
ROLLBACK;

Mesmo com o UPDATE, conseguimos desviar do "problemão" de atualizar todos os registros da tabela com o ROLLBACK, que reverteu toda a situação. Caso fosse utilizado o COMMIT, todos os itens da tabela produtos seriam realmente alterados.

Contudo, vale ressaltar que nada é mais importante do que uma atenção redobrada em atividades que podem impactar todo o nosso banco de dados!

Joathan, espero que tenha ficado mais claro! Caso surjam outras dúvidas após minha explicação ou durante os seus estudos, fico à disposição para ajudar.

Um forte abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado pela explicação, Andrieli! foi de grande ajuda!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software