Pular para o conteúdo principal

Questão de Banco de Dados — PostgreSQL — FCC 2022

Banco de DadosPostgreSQL
Código
fc064880
Banca
FCC
Órgão
TRT - 19ª Região (AL)
Ano
2022
Cargo
Analista Judiciário - Área Apoio Especializado Especialidade: Tecnologia da Informação
No PostgreSQL 13 um trigger
  1. Apermite chamar uma função se uma cláusula INSERT, UPDATE, DELETE ou TRUNCATE ocorrer em uma tabela.
  2. Bpode modificar os dados na tabela virtual somente após a modificação ocorrer na tabela real.
  3. Cdeve ser único em uma tabela, ou seja, não pode haver mais de um trigger para a mesma tabela.
  4. Dpode chamar funções que exibem dados, mas não funções para modificá-los.
  5. Epode ser acionado para uma tabela, mas não para uma view, chamando sempre uma procedure após o acionamento.
Revelar gabarito e comentário

GabaritoA — permite chamar uma função se uma cláusula INSERT, UPDATE, DELETE ou TRUNCATE ocorrer em uma tabela.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

PostgreSQL 13: Triggers

Gabarito: letra A. No PostgreSQL, um trigger é um objeto que associa uma função a uma tabela (ou view) e a executa automaticamente quando ocorre um evento específico: INSERT, UPDATE, DELETE ou TRUNCATE. A alternativa A descreve exatamente essa funcionalidade.

A banca cobra o conceito fundamental de triggers no PostgreSQL. É importante saber que:

  • Triggers podem ser criados para eventos DML (INSERT, UPDATE, DELETE) e também TRUNCATE (a partir do PostgreSQL 9.0).

  • Eles chamam funções (não necessariamente procedures; no PostgreSQL, os triggers usam funções)

  • Podem ser definidos como BEFORE, AFTER ou INSTEAD OF (para views).

Alternativa A — ✅ Correta ⟵ GABARITO

Define corretamente que um trigger permite chamar uma função quando ocorre INSERT, UPDATE, DELETE ou TRUNCATE em uma tabela.

Alternativa B — ❌ Incorreta

Afirma que o trigger só pode modificar dados na tabela virtual (NEW/OLD) após a modificação na tabela real. Na verdade, triggers podem ser BEFORE e modificar a linha NEW antes da efetivação, e também AFTER. A afirmação é restritiva demais.

Alternativa C — ❌ Incorreta

Diz que deve ser único na tabela. É possível criar múltiplos triggers para a mesma tabela, com diferentes eventos, tempos ou funções.

Alternativa D — ❌ Incorreta

Estabelece que triggers só chamam funções de exibição, não de modificação. Na prática, a função do trigger pode executar qualquer operação, inclusive modificar dados em outras tabelas.

Alternativa E — ❌ Incorreta

Afirma que triggers não podem ser acionados para views. No PostgreSQL, é possível criar INSTEAD OF triggers em views. Além disso, não chamam sempre uma procedure; podem chamar funções.

PEGA ESSA DICA!

Lembre-se que, no PostgreSQL, triggers podem ser disparados por TRUNCATE (desde a versão 9.0), e podem ser usados tanto em tabelas quanto em views (INSTEAD OF). A sintaxe básica é: CREATE TRIGGER nome AFTER INSERT ON tabela FOR EACH ROW EXECUTE FUNCTION função(). Estude os tipos de trigger (row vs statement, before vs after) para aprofundar.

Link permanente: /questoes/fc064880