Manual MyTable

PostgreSQL • Triggers

As triggers (gatilhos) executam uma função automaticamente quando ocorre um evento em uma tabela: INSERT, UPDATE, DELETE ou TRUNCATE. Você pode definir o momento (BEFORE ou AFTER) e aplicar condições (WHEN). São usadas para auditoria, validações, preenchimento automático e integrações.


Abrir a área de Triggers

  1. Conecte-se à sua conexão PostgreSQL e selecione o banco.
  2. Escolha o schema e, na árvore, selecione a tabela desejada.
  3. No menu de ações da tabela, toque em Triggers.

Listar e visualizar

  • Veja as triggers existentes organizadas por momento (BEFORE/AFTER) e evento (INSERT/UPDATE/DELETE/TRUNCATE).
  • Ao tocar em uma trigger, o app exibe nome, função (handler), evento, momento, opção WHEN e se é ROW ou STATEMENT.
  • Você também visualiza a definição resumida e metadados úteis (habilitada/ desabilitada, se aplicável).

Criar trigger

  1. Toque em Nova Trigger.
  2. Preencha:
    • Nome (sem espaços/acentos, ex.: trg_pedidos_ai_audit).
    • Momento: BEFORE ou AFTER.
    • Evento: INSERT, UPDATE, DELETE ou TRUNCATE.
    • Nível: FOR EACH ROW (por linha) ou FOR EACH STATEMENT (uma vez por comando).
    • Função (handler) que será executada — veja PostgreSQL • Funções.
    • (Opcional) Condição WHEN (ex.: executar só quando NEW.status = 'ATIVO').
  3. Revise o resumo e toque em Criar.

Dica: Triggers de auditoria geralmente são AFTER INSERT/UPDATE/DELETE e escrevem em uma tabela de log.


Editar trigger

  • Selecione a trigger e toque em Editar.
  • Ajuste momento, evento, nível e/ou a condição WHEN.
  • Para mudar a função (lógica), você pode escolher outra função existente ou editar o código da função (na seção de Funções).
  • Confirme em Salvar. Em muitos casos, a UI aplica DROP/CREATE automaticamente para refletir as mudanças.

Habilitar/Desabilitar

  • Alguns ambientes permitem desabilitar temporariamente uma trigger (útil para cargas de dados).
  • Use com cautela e registre a operação; lembre de reabilitar ao final.

Excluir trigger

  1. Abra a trigger desejada e toque em Excluir.
  2. Confirme a remoção. A função associada não é apagada automaticamente (pode ser usada por outras triggers).

Boas práticas

  • Mantenha a lógica das triggers curta e clara; mova processos pesados para jobs assíncronos ou procedures separadas.
  • Nomeie seguindo um padrão (ex.: trg_tabela_momentoevento_propósito).
  • Documente o propósito e os campos tocados; facilite auditoria e manutenção.
  • Evite recursão indesejada (trigger que altera a mesma tabela sem controle); use condições/flags.
  • Teste primeiro em homolog com dados realistas.

Erros comuns (e soluções)

“Função não encontrada ou inválida”

“Permissão negada para criar trigger”

  • Garanta privilégios no schema, na tabela e permissão para usar a função.

“Loop/recursão detectada”

  • Adicione uma condição WHEN ou controle via variável/coluna para evitar disparos encadeados.

“Queda de performance após criar trigger”

  • Simplifique a lógica; troque para AFTER quando possível; use índices nas tabelas acessadas pela função.

Ferramentas relacionadas

Próximo: PostgreSQL • Funções • Voltar: PostgreSQL • Views