19.08.2021 Views

1546027450-1546027450-sql

Ensina estrutura básica de SQL

Ensina estrutura básica de SQL

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

178 - Capítulo 11 – DTL – DATA TRANSACT LANGUAGE

UPDATE PRODUTO SET VALOR_PROD = VALOR_PROD * 1.15

WHERE VALOR_PROD > 50.00;

COMMIT;

Porém, o que aconteceria se você errasse, por exemplo, parte da

transação, conforme apresentado a seguir:

UPDATE PRODUTO SET VALOR_PROD = VALOR_PROD * 1.10

WHERE VALOR_PROD > 50.00;

Os produtos com valores superiores teriam um aumento de 10%, o que

não está de acordo com o que foi solicitado. Neste caso, a transação

apresentada anteriormente deveria ser revertida na sua totalidade.

Observe agora como poderíamos utilizar um ponto de salvamento

(SAVEPOINT) para evitar isso:

UPDATE PRODUTO SET VALOR_PROD = VALOR_PROD * 1.20

WHERE VALOR_PROD <= 50.00;

SAVEPOINT PONTO_1

UPDATE PRODUTO SET VALOR_PROD = VALOR_PROD * 1.15

WHERE VALOR_PROD > 50.00;

Neste exemplo criamos um ponto de salvamento após a atualização de

valores dos produtos com valores até 50.00.

Portanto, se ocorresse algum problema com a parte seguinte da

transação, esta poderia ser parcialmente revertida, conforme segue:

ROLLBACK TO SAVEPOINT PONTO_1;

A partir deste momento, apenas a parte final da transação precisaria

ser restabelecida.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!