Sobes.tech
Middle

Já trabalhou com triggers? Para que os usou? Quais tipos de triggers conhece (ROW vs STATEMENT)?

sobes.tech IA

Resposta da IA

Os triggers em bases de dados são usados para executar automaticamente ações específicas quando ocorrem eventos (INSERT, UPDATE, DELETE) nas tabelas. Eu utilizei triggers para auditar alterações de dados, atualizar automaticamente tabelas relacionadas e controlar a integridade.

Existem dois tipos principais de triggers com base no nível de ativação:

  • Nível de linha (ROW-level) — o trigger é acionado para cada linha modificada. Por exemplo, ao atualizar 10 linhas, o trigger será executado 10 vezes.
  • Nível de declaração (STATEMENT-level) — o trigger é acionado uma única vez para toda a consulta SQL, independentemente do número de linhas afetadas.

Exemplo de criação de um trigger a nível de linha no PostgreSQL:

CREATE FUNCTION audit_changes() RETURNS trigger AS $$
BEGIN
  INSERT INTO audit_log(table_name, operation, changed_at)
  VALUES (TG_TABLE_NAME, TG_OP, now());
  RETURN NEW;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER audit_trigger
AFTER INSERT OR UPDATE OR DELETE ON my_table
FOR EACH ROW EXECUTE FUNCTION audit_changes();