Acerca de triggers e procedimentos armazenados, julgue o se...
Em uma tabela cujo conteúdo esteja sendo alterado por um comando INSERT, DELETE ou UPDATE e o comando não tenha sido concluído, um trigger do tipo row-level não poderá ler ou modificar seu conteúdo.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - certo
A questão aborda o conceito de triggers do tipo row-level, que são procedimentos automáticos disparados por eventos de manipulação de dados, como INSERT, DELETE ou UPDATE. Quando um trigger row-level é ativado, ele opera em cada linha que é afetada por uma transação. Agora, precisamos entender um ponto crítico sobre a execução de triggers em relação ao estado da transação.
Os triggers row-level são executados antes ou depois de cada linha ser inserida, atualizada ou deletada. Durante esse processo, o comando responsável pela alteração da tabela ainda não foi concluído; ou seja, a transação ainda não foi finalizada e a tabela está em um estado intermediário. Nesse contexto, a consistência dos dados precisa ser mantida, e o acesso ao conteúdo alterado é restrito.
Esta restrição é imposta para prevenir problemas de integridade de dados e condições de corrida, que poderiam surgir caso o conteúdo não finalizado de uma transação fosse modificado ou lido por outra transação. Portanto, o trigger não pode ler ou modificar o conteúdo da tabela enquanto o comando que acionou o trigger não tiver sido completado e a transação finalizada, garantindo assim a atomicidade e consistência das operações no banco de dados.
Por esses motivos, a afirmação da questão está correta, pois reflete o comportamento esperado de triggers row-level em uma situação onde um comando ainda não foi concluído. Eles não podem interferir no conteúdo que está sendo alterado até que a instrução que os disparou seja finalizada.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Os Triggers do tipo ROW LEVEL podem ser usados sempre que precisarmos que um Trigger trate de valores em uma transação, e por sua vez são disparados a cada ocorrência de uma transação sobre uma tabela. Se um UPDATE atualizar, por exemplo, 1000 linhas em uma tabela que possua um Trigger de Update do tipo row level, serão disparadas 1000 vezes.
Os Triggers do tipo row level são utilizadas para operações como:
- Gravação de LOGS de auditoria de uma aplicação;
- Verificação de dados (Consistência);
- Implementação de integridade referencial;
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo