Transações

Transação - é a realização de um conjunto de comandos de uma só vez. Uma transação acontece por completo (todas as operações) ou nada acontece. Também a transação deve garantir um nível de isolamento das demais transações, de maneira que as demais transações somente enxerguem as operações após a transação concluída.

Caso haja um erro qualquer na transação ou falha no sistema o SGBR irá executar um comando ROLLBACK. Transações são uma forma de dar suporte às operações concorrentes, garantindo a segurança e integridade das informações. Garantir que duas solicitações diferentes não efetuarão uma mesma operação ao mesmo tempo.

BEGIN;
UPDATE musica SET duracao = duracao + 100.00 WHERE codigo_musica = 2;
UPDATE musica SET duracao = duracao - 100.00 WHERE codigo_musica = 445;
COMMIT;

Na versão 8 apareceram os SAVEPOINTS (pontos de salvamento) , que guardam as informações até eles. Isso salva as operações existentes antes do SAVEPOINT e basta um ROLLBACK TO para continuar com as demais operações.

BEGIN;
UPDATE musica SET duracao = duracao + 100.00 WHERE codigo_musica = 2;
SAVEPOINT meu_ponto_de_salvamento;
UPDATE musica SET duracao = duracao - 1900.00 WHERE codigo_musica = 2;
UPDATE musica SET duracao = duracao + 5090.00 WHERE codigo_musica = 2;
-- ops ... o certo é na conta 6
ROLLBACK TO meu_ponto_de_salvamento;
COMMIT;

BEGIN;
UPDATE musica SET duracao = duracao + 100.00 WHERE codigo_musica = 2;
UPDATE musica SET duracao = duracao - 1900.00 WHERE codigo_musica = 2;
UPDATE musica SET duracao = duracao + 5090.00 WHERE codigo_musica = 2;
ROLLBACK;
COMMIT;

Made with Slides.com