Questão nº 28
Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 28)
Observe o seguinte trecho de um script SQL:
START TRANSACTION;
INSERT INTO tabA(coluna1)
VALUES(1);
Para que o resultado da execução do comando INSERT, no MySQL, seja persistido no banco de dados, o script apresentado deve terminar com o comando:
- ASET
- BBEGIN
- CCOMMIT (alternativa correta)
- DROLLBACK
- ESAVEPOINT
Resposta comentada
Gabarito Alternativa C
Transações em SQL são grupos de operações que são tratadas como uma única unidade: ou todas são concluídas com sucesso e salvas permanentemente, ou nenhuma é salva. Para que as alterações feitas dentro de uma transação sejam gravadas de forma definitiva no banco de dados, é preciso confirmá-las.
- (A) Incorreta:
SETé usado para definir variáveis de sessão ou configurações do ambiente, e não para finalizar transações. - (B) Incorreta:
BEGIN(ouBEGIN WORK, ouSTART TRANSACTION) é um comando para iniciar uma transação, não para finalizá-la e persistir os dados. A armadilha aqui é que ele está no mesmo "pacote" de comandos de transação, mas com função oposta ao que é pedido. - (C) Correta: O comando
COMMITé o responsável por finalizar uma transação com sucesso, tornando todas as alterações (como oINSERTdo exemplo) permanentes no banco de dados. - (D) Incorreta:
ROLLBACKé usado para desfazer todas as alterações feitas dentro de uma transação, restaurando o banco de dados ao estado anterior ao início da transação, ou seja, ele não persiste as mudanças. - (E) Incorreta:
SAVEPOINTcria um ponto de salvamento dentro de uma transação, permitindo que você desfaça apenas parte dela comROLLBACK TO SAVEPOINT, mas não finaliza a transação em si.
Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Analista de Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.