Criando Triggers no MySQL

Triggers ou gatilhos é um recurso bastante interessante presente na maioria dos SGBDs pois permite que comandos SQL sejam executados antes ou depois de operações como INSERT, UPDATE e DELETE.

No exemplo de hoje, vamos imaginar que possuímos uma tabela chamada registros, cujos campos serão: id, nome, alteracoes.

O campo alteracoes irá conter o número de edições que o registro sofreu, ou seja, será incrementado a cada UPDATE. Para criar um gatilho que faça a atualização do campo alteracoes será necessário executar o seguinte comando:

DELIMITER #
CREATE TRIGGER `registros.atualizar_alteracoes` BEFORE UPDATE ON registros
FOR EACH ROW BEGIN
SET NEW.alteracoes = NEW.alteracoes + 1;
END#

No comando acima, estamos informando que antes (BEFORE) de cada UPDATE  na tabela registros o campo alteracoes deverá ser incrementado. Também seria possível definir que o gatilho fosse executado após o comando SQL, para isto, seria necessário utilizar a palavra AFTER ao invés de BEFORE.

Agora é só realizar alguns UPDATES e ver o campo alteracoes ser incrementado. Para mais detalhes sobre o uso de gatilhos, consulte a documentação oficial do MySQL sobre triggers.

Para excluir um gatilho, utilize:

DROP TRIGGER `registros.atualizar_alteracoes`

Até a próxima 😉

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *