Comandos COMMIT e ROLLBACK no SQL – Conheça Agora!

Você já conhece os comandos COMMIT e ROLLBACK no SQL? Então você precisa conhecer, vem comigo que eu te ensino!

COMMIT e ROLLBACK são comandos do grupo TCL do SQL, responsável pelo controle de transações: o COMMIT grava definitivamente no banco as alterações feitas por INSERT, UPDATE ou DELETE, e o ROLLBACK desfaz essas alterações. A regra prática é simples: depois de um COMMIT, o ROLLBACK não volta mais atrás.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: A aula ensina a controlar transações no SQL com os comandos COMMIT e ROLLBACK, do conceito de TCL até dois exemplos rodados numa tabela de funcionários. Você aprende a desfazer um DELETE com ROLLBACK, gravar a alteração com COMMIT, entender por que depois dele não há volta e reconhecer o auto-commit dos comandos DDL.

Neste vídeo (12 min):

  • 1:00 - O grupo TCL do SQL e o que conta como transação: INSERT, UPDATE e DELETE
  • 2:00 - Salvar o script no editor não salva a alteração no banco: quem salva é o COMMIT
  • 3:00 - Por que o desfazer do editor não reverte o banco, e o papel do ROLLBACK
  • 4:00 - Exemplo 1 no banco de RH: localizar o funcionário 130 com SELECT * FROM employees
  • 5:00 - Exclusão com DELETE FROM employees pelo id 130 e conferência de que a linha sumiu
  • 6:00 - ROLLBACK desfazendo a exclusão e trazendo o funcionário 130 de volta à tabela
  • 7:00 - Exemplo 2: excluir a linha, rodar COMMIT e só então tentar o ROLLBACK
  • 8:00 - COMMIT gravando a exclusão e o ROLLBACK seguinte não trazendo mais a linha de volta
  • 10:00 - Comandos DDL como CREATE, ALTER e DROP têm auto-commit e não aceitam ROLLBACK

Trechos do vídeo:

  • COMMIT e ROLLBACK pertencem ao grupo TCL, a linguagem de controle de transação, e agem sobre INSERT, UPDATE e DELETE
  • Depois de um COMMIT, o ROLLBACK não desfaz mais aquela alteração: a gravação no banco passa a ser definitiva
  • Comandos DDL como CREATE, ALTER e DROP têm auto-commit, ou seja, são salvos sozinhos e não aceitam ROLLBACK
  • Salvar o arquivo de script no editor guarda apenas o código; a alteração no banco só persiste com COMMIT

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

COMMIT e ROLLBACK no SQL

Hoje eu vou te mostrar 2 comandos do SQL que você precisa conhecer. Vou te mostrar o comando COMMIT e o comando ROLLBACK que vão te ajudar muito.

São comandos importantes que vão te auxiliar quando estiver tratando com seu banco de dados no SQL.

Ícone SQLSQL Impressionador

Domine a linguagem mais importante do Mundo para quem trabalha com Dados, seja para se destacar na sua empresa atual, para conseguir um diferencial em processos seletivos ou até mesmo para entrar em áreas de dados.

Começar agoraSeta para a direita
Fundo SQLTelas SQL
Luz SQL

Comandos do SQL

Esses comandos do SQL são bem simples e fáceis de entender, mas vão te ajudar bastante na hora de trabalhar com os bancos de dados.

Lembrando que para exemplificar vamos utilizar o Oracle SQL Developer, mas como são códigos em SQL vão funcionar em qualquer outro SGBD (Sistema de Gerenciamento de Bancos de Dados).

Esses dois comandos estão dentro do grupo de comandos TCL. Então vamos a prática para ver como eles funcionam.

Esse é um grupo de comando que é responsável pelo controle de transação, que pode ser para salvar alterações no banco de dados (COMMIT) ou para desfazer alterações no banco de dados (ROLLBACK).

Como usar ROLLBACK

O primeiro exemplo é para excluir um funcionário dentro do banco de dados em uma tabela, e em seguida utilizar o comando ROLLBACK para desfazer esse procedimento.

Codigo
-- Exemplo 1: Exclua o funcionário 130 da tabela EMPLOYEES. Em seguida, utilize o ROLLBACK.

SELECT * FROM employees;

DELETE FROM employees
WHERE employee_id = 130;

ROLLBACK;

Aqui você consegue visualizar que o funcionário 130 está dentro do banco de dados, mas ao utilizar o comando DELETE FROM esse funcionário deixa de existir.

Verificando que o funcionário foi excluído
Verificando que o funcionário foi excluído

Agora podemos utilizar o comando ROLLBACK para desfazer essa alteração que acabamos de executar, assim o funcionário volta a existir dentro do banco de dados.

Comandos COMMIT e ROLLBACK no SQL
Desfazendo a alteração que foi feita com o comando ROLLBACK

Como usar COMMIT

Para esse segundo exemplo nós vamos fazer o mesmo procedimento, vamos excluir o funcionário 130, mas dessa vez nós vamos utilizar o comando COMMIT após essa alteração.

Codigo
-- Exemplo 2: Exclua o funcionário 130 da tabela EMPLOYEES. Em seguida, utilize o COMMIT.
-- Por fim, tente usar o comando ROLLBACK e veja o que acontece.

SELECT * FROM employees;

DELETE FROM employees
WHERE employee_id = 130;

COMMIT;

ROLLBACK;

Feito isso nós vamos utilizar o comando ROLLBACK para verificar o que acontece depois de salvar as alterações que foram feitas no banco de dados.

Comandos COMMIT e ROLLBACK no SQL
Tentando desfazer as alterações após salvar com o comando COMMIT

Aqui você pode notar que depois de salvar uma alteração nós não conseguimos desfazer o que foi feito, então mesmo utilizando o comando ROLLBACK não será possível desfazer a alteração.

Nesses casos é importante tomar muito cuidado para não salvar essas alterações antes de poder desfazer o que foi feito, pois uma vez salvo não tem como voltar atrás.

Perguntas frequentes

1. O que é uma transação no SQL?

É o conjunto de alterações feitas no banco que só se tornam definitivas quando você confirma. Enquanto a transação está aberta, comandos como INSERT, UPDATE e DELETE ficam pendentes: o COMMIT confirma todas de uma vez e o ROLLBACK descarta o que foi feito desde o início dela.

2. Como desfazer um DELETE no SQL?

Se você ainda não executou o COMMIT, basta rodar o ROLLBACK que as linhas apagadas voltam para a tabela. Depois do COMMIT, o ROLLBACK não tem mais efeito e a recuperação passa a depender de backup do banco. Por isso vale conferir o SELECT antes de confirmar qualquer exclusão.

3. Quais comandos fazem parte do grupo TCL?

O TCL, de Transaction Control Language, reúne os comandos que controlam transações: COMMIT para salvar, ROLLBACK para desfazer e SAVEPOINT para marcar um ponto intermediário. Ele é um dos grupos do SQL, ao lado do DDL, que cria estruturas, do DML, que manipula dados, e do DCL, de permissões.

4. COMMIT e ROLLBACK funcionam em qualquer banco de dados?

Sim, são comandos padrão do SQL. Os exemplos da aula usam o Oracle SQL Developer, mas eles funcionam também em MySQL, SQL Server, PostgreSQL e outros bancos. O que muda de um para outro é o comportamento padrão: alguns já salvam automaticamente até você abrir a transação.

Conclusão - Comandos COMMIT e ROLLBACK no SQL

Nessa aula eu te mostrei como usar os comandos COMMIT e ROLLBACK no SQL para que você possa salvar as alterações que fez ou desfazer uma alteração.

Lembrando que o comando ROLLBACK só vai funcionar se você não tiver utilizado o comando COMMIT anteriormente, caso contrário não será possível desfazer as alterações!

Leia também sobre: Trigger no SQL – Para que serve e como funciona?

Hashtag Treinamentos

Para acessar outras publicações de SQL, clique aqui!


Quer aprender mais sobre SQL com um minicurso básico gratuito?