CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

MySQL - Trigger

Por Benedito Silva Júnior - publicado em 26/07/2016


Um TRIGGER, ou gatilho, é um objeto de banco de dados, associado a uma tabela, definido para ser disparado, respondendo a um evento em particular. Tais eventos são os comandos DML (Data Manipulation Language): INSERT, REPLACE, DELETE ou UPDATE.

Podemos definir inúmeros TRIGGERS em uma base de dados baseados diretamente em qual dos comandos acima irá dispará-lo, sendo que, para cada um, podemos definir apenas um TRIGGER. Os TRIGGERS poderão ser disparados para trabalharem antes ou depois do evento.

A sintaxe para a criação de um Trigger:

   CREATE TRIGGER "nome" "timing" "operação"
   ON tabela //define em qual tabela o trigger vai agir
   FOR EACH ROW //"para cada linha" - o trigger age linha por linha dentro da tabela
   <declarações> //para cada linha será executado o procedimento do trigger

No MySQL os tipos de triggers suportados são "BEFORE" ou "AFTER". O BEFORE dispara e executa a ação do trigger antes do comando DML ser executado por completo e o AFTER faz isso depois.

A operação são os comandos DML, ou seja, os comandos INSERT, REPLACE, DELETE ou UPDATE.

Criação de um trigger:

//define a trigger que irá definir o novo salário do funcionário CREATE TRIGGER trg_novoSalario BEFORE INSERT ON tabela_funcionarios //tabela usada FOR EACH ROW //SET configura (atualiza) o novo salário SET NEW.salario_novo = (NEW.salario_atual + 250)
//A palavra NEW é usada para especificar os campos que ainda não existem no banco de dados.

Para fazer o trigger disparar:

//executa um comandos simples de inclusão no banco de dados INSERT INTO tabela_funcionarios (nome, idade, salario_atual) VALUES ('Benedito', 33, 2500)

Ao executar o comando INSERT o trigger irá disparar a ação de atualizar o salário do funcionário somando 250 ao salário atual.

Para excluir o trigger:

DROP TRIGGER trg_novoSalario

Para visualizar todos os triggers:

SHOW TRIGGERS


 
VoltarTopo