Marque C,se a proposição é verdadeira; E,se a proposição é f...

Próximas questões
Com base no mesmo assunto
Q483423 Banco de Dados
Marque C,se a proposição é verdadeira; E,se a proposição é falsa.

A execução apresentada do script deflagrará a execução da trigger trg_01,construída em PL/SQL, que  é demonstrada a seguir.

update tabela_a
set coluna_a = ‘X’
where coluna_b = ‘Y’;

create trigger trg_01
before delete on tabela_a
begin
insert into tabela_b values (‘W’, ‘K’);
end;
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - Errado

No contexto da questão, estamos lidando com gatilhos, ou triggers, que são procedimentos armazenados que são automaticamente executados ou "disparados" quando certos eventos ocorrem em uma tabela. No SQL padrão e no PL/SQL, que é o SQL procedural da Oracle, os gatilhos podem ser definidos para operações como INSERT, UPDATE e DELETE.

O script apresentado na questão executa um UPDATE na tabela_a, modificando o valor da coluna_a para 'X', onde coluna_b é igual a 'Y'. Entretanto, o gatilho trg_01 está configurado para ser disparado antes de uma operação de DELETE na tabela_a, conforme indicado pela cláusula before delete on tabela_a. Isso significa que o gatilho não será ativado pela operação de UPDATE realizada no script.

Para que o gatilho trg_01 fosse acionado pela operação apresentada, ele deveria estar configurado como um gatilho de UPDATE, com uma cláusula semelhante a before update on tabela_a. Como não é esse o caso, a execução do UPDATE não irá desencadear o gatilho, e a afirmativa é falsa.

Além disso, é importante notar que a sintaxe create trigger é utilizada para a criação de um gatilho e não para a sua execução. A questão pode levar a alguma confusão ao apresentar o script de criação do gatilho após a operação de UPDATE, mas essa ordenação não influencia a execução do gatilho, pois ele precisa ter sido criado e estar ativo na base de dados antes de qualquer operação que o deflagraria.

Portanto, o conhecimento de como os gatilhos são acionados em função de operações específicas na base de dados é essencial para responder a esta questão corretamente. O entendimento claro das cláusulas que definem o momento de ativação do gatilho, como before ou after e a operação associada, como insert, update, ou delete, é crucial na administração de gatilhos em um ambiente de banco de dados.

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

Acredito que o erro está na na linha insert into tabela_b values (‘W’, ‘K’);
o correto seria insert into tabela_b (coluna_a, coluna_b) values (‘W’, ‘K’); 
 

Na verdade, o erro é o seguinte:

O Trigger em questão só será executado antes de algum comando DELETE na tabela_a  →  before delete on tabela_a.
Porém o script inicial faz um UPDATE na tabela_a →  update tabela_a set coluna_a = ‘X’ where coluna_b = ‘Y’.

Ou seja, o Trigger não será deflagrado (disparado), pois não existiu um evento necessário para sua execução.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo