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();