Questão nº 66

Questão de Tecnologia da Informação · FGV DPE-RS 2023 (nº 66)

FGV2023Analista - Apoio Especializado (TI - Banco de Dados)Tecnologia da Informação
Gabarito: Aver comentário ↓

Em banco de dados, uma transação é uma unidade lógica de trabalho. Observe o seguinte script de uma transação implementada no MYSQL:

CREATE TABLE cliente (id INT, nome CHAR (50), INDEX (id));
START TRANSACTION;
INSERT INTO cliente VALUES (1, 'LUCAS');
COMMIT;
SET autocommit = 0;
INSERT INTO cliente VALUES (2, 'MARCOS');
INSERT INTO cliente VALUES (3, 'PAULO');
UPDATE cliente SET nome='TIAGO' WHERE id=3;
DELETE FROM cliente WHERE nome='LUCAS';
ROLLBACK;
SELECT * FROM cliente;

Após a execução do script apresentado, a consulta retornará as colunas id e nome com os valores:

Resposta comentada

Gabarito Alternativa A

  • (A) Correta: o INSERT de LUCAS foi efetivado com COMMIT antes do SET autocommit=0; todos os comandos posteriores (INSERT de MARCOS e PAULO, UPDATE e DELETE) fazem parte da transação implícita desfeita pelo ROLLBACK, inclusive a exclusão de LUCAS, que portanto permanece na tabela.
  • (B) Incorreta: MARCOS e PAULO fazem parte da transação desfeita pelo ROLLBACK e não permanecem na tabela.
  • (C) Incorreta: o UPDATE que renomeou PAULO para TIAGO também está dentro da transação revertida pelo ROLLBACK.
  • (D) Incorreta: nenhuma dessas linhas se mantém, pois toda a transação iniciada após o SET autocommit=0 é revertida.
  • (E) Incorreta: não há motivo para retornar valores nulos; a linha commitada de LUCAS permanece intacta na tabela.

Fonte: FGV DPE-RS 2023 Analista - Apoio Especializado (TI - Banco de Dados) (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho