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

- 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.
Continue estudando
Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.
Estudar de graça no Quizinho