Questão nº 34
Questão de Tecnologia da Informação · FCC TRT19 2022 (nº 34)
No PostgreSQL 13 um trigger
- Apermite chamar uma função se uma cláusula INSERT, UPDATE, DELETE ou TRUNCATE ocorrer em uma tabela. (alternativa correta)
- Bpode modificar os dados na tabela virtual somente após a modificação ocorrer na tabela real.
- Cdeve ser único em uma tabela, ou seja, não pode haver mais de um trigger para a mesma tabela.
- Dpode chamar funções que exibem dados, mas não funções para modificá-los.
- Epode ser acionado para uma tabela, mas não para uma view, chamando sempre uma procedure após o acionamento.
Resposta comentada
Gabarito Alternativa A
Um trigger (gatilho) no PostgreSQL é um objeto de banco de dados que executa automaticamente uma função (um bloco de código SQL ou de outras linguagens) sempre que um evento específico (como inserir, atualizar ou deletar dados) ocorre em uma tabela ou view. Ele serve para automatizar tarefas, impor regras de negócio e manter a integridade dos dados.
(A) Correta: Um trigger no PostgreSQL é projetado para chamar uma função definida pelo usuário quando uma operação DML (Data Manipulation Language) como `INSERT`, `UPDATE`, `DELETE` ou `TRUNCATE` é executada em uma tabela. Isso permite que o banco de dados reaja automaticamente a essas modificações.
(B) Incorreta: Esta alternativa é uma armadilha. No PostgreSQL, triggers do tipo `INSTEAD OF` podem ser definidos em views (o que a alternativa chama de "tabela virtual"). Esses triggers são acionados em vez de (instead of) a operação original na view, permitindo que você defina como as modificações na view devem ser traduzidas para as tabelas base. Eles não esperam que a modificação ocorra na tabela real após a modificação na view; eles a interceptam e a gerenciam.
(C) Incorreta: Uma tabela pode ter múltiplos triggers. É comum ter vários triggers para diferentes eventos (ex: um para `INSERT`, outro para `UPDATE`) ou até mesmo múltiplos triggers para o mesmo evento (ex: dois triggers `BEFORE INSERT`), que serão executados em uma ordem definida (por nome ou explicitamente).
(D) Incorreta: Triggers são frequentemente usados para modificar dados, como atualizar colunas de auditoria (`last_modified_date`), manter totalizadores ou replicar dados. Chamar funções que apenas exibem dados não é o propósito principal ou comum de um trigger.
(E) Incorreta: Triggers podem ser acionados tanto para tabelas quanto para views (com `INSTEAD OF` triggers, como mencionado na alternativa B). Além disso, no PostgreSQL, triggers chamam funções, não "procedures" no sentido estrito de algumas outras linguagens SQL (embora PostgreSQL 11 tenha introduzido `SQL PROCEDURES`, triggers ainda são associados a `FUNCTIONS`).
Fonte: FCC TRT19 2022 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 001). Reproduzida para fins de estudo.