Questão nº 66
Questão de Tecnologia da Informação · FGV DPE-RS 2023 (nº 66)
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:
- A
(alternativa correta) - B

- C

- D

- E

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.