FC ConcursosFC Concursos

Questão FC373019

Em um banco de dados PostgreSQL aberto e em condições ideais, um Analista especializado em Tecnologia da Informação executou as instruções abaixo em uma tabela chamada funcionario.

Sistema de Gerenciamento de Banco de Dados (SGBD)

FCC · 2018

Em um banco de dados PostgreSQL aberto e em condições ideais, um Analista especializado em Tecnologia da Informação executou as instruções abaixo em uma tabela chamada funcionario. 

 

BEGIN;

UPDATE funcionario SET salario = salario - 1000.00

     WHERE nome = 'João';

SAVEPOINT ps1;

UPDATE funcionario SET salario = salario + 1000.00

     WHERE nome = 'Paulo';

  I  

UPDATE salario SET salario = salario + 1000.00

     WHERE nome = 'Marcos';

COMMIT; 

 

Na segunda instrução UPDATE, o Analista aumentou o salário do funcionário Paulo em 1000.00, quando deveria aumentar o salário do funcionário Marcos nesse valor. Para cancelar a operação realizada, a lacuna I deve ser preenchida pela instrução 

  1. CANCEL OPERATION;
  2. RESTORE TO ps1;
  3. CANCEL UPDATE;
  4. ROLLBACK -1;
  5. ROLLBACK TO ps1;
Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

O comando ROLLBACK TO ps1 restaura o estado da transação ao ponto marcado por SAVEPOINT ps1, desfazendo apenas as alterações realizadas depois desse savepoint.

No enunciado, após BEGIN e o primeiro UPDATE (queda do salário de João), foi criado SAVEPOINT ps1. A instrução que aumentou o salário de Paulo é posterior a esse savepoint; portanto, ROLLBACK TO ps1 cancela exclusivamente essa alteração equivocada.

Após o rollback, permanecem as alterações feitas antes do savepoint (ou seja, a alteração em João). Em seguida pode-se aplicar corretamente o UPDATE para Marcos e finalizar com COMMIT, garantindo que apenas as mudanças desejadas sejam persistidas.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo