Junior
O que são triggers numa base de dados relacional?
sobes.tech IA
Resposta da IA
Um trigger é um tipo especial de procedimento armazenado que é executado automaticamente em resposta a um evento específico numa tabela ou vista da base de dados.
Os principais eventos que acionam um trigger:
INSERT: Inserção de uma nova linha.UPDATE: Alteração de uma linha existente.DELETE: Eliminação de uma linha.
Os triggers podem ser acionados antes (BEFORE) ou depois (AFTER) da execução do evento.
Exemplos de uso de triggers:
- Atualização automática de campos (por exemplo, data da última alteração).
- Verificação da integridade dos dados.
- Registro de alterações (registo em logs).
- Atualização ou eliminação em cascata de dados relacionados.
-- Exemplo de criação de um trigger AFTER INSERT (sintaxe fictícia)
CREATE TRIGGER audit_log_trigger
AFTER INSERT ON users
FOR EACH ROW
EXECUTE FUNCTION log_user_insert();
-- Exemplo de função chamada pelo trigger
CREATE FUNCTION log_user_insert() RETURNS TRIGGER AS $$
BEGIN
INSERT INTO audit_logs (table_name, operation, timestamp, new_data)
VALUES ('users', 'INSERT', NOW(), row_to_json(NEW));
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
Vantagens:
- Centralização da lógica de negócio.
- Automação de tarefas rotineiras.
- Melhoria da integridade dos dados.
Desvantagens:
- Dificuldade na depuração.
- Impacto potencial na performance.
- Complexidade adicional na lógica da aplicação, pois parte dela é transferida para o nível do banco de dados.