#Triggers em MySQL
Triggers (acionadores) são objetos de banco de dados que permitem a execução automática de ações em resposta a determinados eventos que ocorrem no banco de dados. Esses eventos podem incluir inserções, atualizações ou exclusões de registros em tabelas. Triggers são uma maneira poderosa de automatizar tarefas e aplicar lógica de negócios diretamente no banco de dados.
Um trigger é composto por três partes principais:
- Evento: O evento que dispara o trigger, como INSERT, UPDATE ou DELETE.
- Tabela: A tabela à qual o trigger está associado.
- Ação: A ação que o trigger executa quando o evento ocorre. Pode ser um bloco de código SQL ou uma chamada a uma Stored Procedure.
Suponha que queremos manter uma contagem automática de quantas vezes um jogador realiza uma compra na nossa loja de jogos. Vamos criar um trigger que incrementa o contador toda vez que uma nova compra é inserida na tabela de compras:
DELIMITER //
CREATE TRIGGER AtualizaContadorCompras
AFTER INSERT ON Compras
FOR EACH ROW
BEGIN
UPDATE Jogadores
SET total_compras = total_compras + 1
WHERE id_jogador = NEW.id_jogador;
END;
//
DELIMITER ;
- BEFORE: Executa a ação antes do evento ocorrer. Pode ser usado para validar ou modificar dados antes da operação.
- AFTER: Executa a ação após o evento ocorrer. Pode ser usado para auditoria ou atualizações secundárias.
- FOR EACH ROW: Indica que a trigger é executada para cada linha afetada pelo evento.
- INSTEAD OF: Usado com vistas (views) atualizáveis. Substitui a operação padrão na vista pela operação definida no trigger.
- Automatização: Triggers automatizam tarefas no nível do banco de dados, reduzindo a necessidade de intervenção manual.
- Consistência: Asseguram que ações específicas ocorram sempre que um evento é disparado, mantendo a consistência dos dados.
- Performance: Embora úteis, triggers podem afetar o desempenho, especialmente se não forem otimizados corretamente.
- Auditoria de Mudanças: Registre todas as mudanças feitas em uma tabela para fins de auditoria.
- Validação de Dados: Garanta que apenas dados válidos sejam inseridos ou atualizados.
- Atualizações Secundárias: Mantenha informações secundárias sincronizadas após uma alteração.
Triggers são uma ferramenta poderosa em bancos de dados para automatizar ações em resposta a eventos. Eles ajudam a manter a consistência e a integridade dos dados e permitem que a lógica de negócios seja aplicada diretamente no banco de dados. No entanto, eles devem ser usados com cuidado, considerando o desempenho e a manutenibilidade do sistema.