COMMIT e ROLLBACK: Gerenciando Transações SQL

Classificado em Computação

Escrito em em português com um tamanho de 7,68 KB

Confirmando Alterações com COMMIT

Todas as alterações de dados feitas durante a transação serão temporárias até que ela seja submetida a COMMIT.
O estado dos dados antes da execução da instrução COMMIT ou ROLLBACK pode ser descrito da seguinte forma:

  • As operações de manipulação de dados afetam principalmente o buffer de banco de dados; portanto, é possível recuperar o estado anterior dos dados.
  • O usuário atual pode visualizar os resultados das operações de manipulação de dados consultando as tabelas.
  • Outros usuários não podem visualizar os resultados das operações de manipulação de dados executadas pelo usuário atual. O servidor Oracle institui a consistência de leitura para garantir que cada usuário veja os dados da forma como se encontravam no último COMMIT.
  • As linhas afetadas são bloqueadas; outros usuários não podem alterar os dados nessas linhas.

Vamos ao exemplo:

// Deletando todas as linhas da tabela 'filmes' que contêm o gênero 'Aventura'delete from filmesWHERE GENERO = 'Aventura';2 rows deleted.

// Verificando a tabela 'filmes'

select * from filmes;

NOMEANOGENERO
O discurso do rei2010Drama
Professor aloprado2000Comedia
a pequena sereia2000Desenho

Ótimo, apagamos todas as linhas que continham o gênero 'Aventura'. Para confirmar este comando, precisamos executar o COMMIT.

commit;committed.

No momento em que executamos o COMMIT, não será mais possível efetuar o ROLLBACK.

Desfazendo Alterações com ROLLBACK

Descarte todas as alterações pendentes com a instrução ROLLBACK. O resultado será:

  • As alterações de dados são desfeitas.
  • O estado anterior dos dados é restaurado.
  • Os bloqueios nas linhas afetadas são liberados.

// Deletando todas as linhas da tabela 'filmes'

delete from filmes;3 rows deleted.

// Consultando a tabela 'filmes'

select * from filmes;

NOMEANOGENERO

// Executando ROLLBACK

rollback;rollback complete.

// Consultando novamente a tabela

select * from filmes;

NOMEANOGENERO
O discurso do rei2010Drama
Professor aloprado2000Comedia
a pequena sereia2000Desenho

Este texto é bem básico em relação às transações de banco de dados. Existem muitos detalhes que agora cabe a você procurar e aprender. Um abraço!

Entradas relacionadas: