Criando uma Trigger com MySQL

Triggers são funções muito úteis pra quem usa Banco de Dados, nesse exemplo vou mostrar uma trigger de INSERT e de DELETE,

INSERT
Possuo uma tabela chamada compras, sempre que eu adicionar um registro na tabela compras ou vou adicionar também um registro na tabela historicos.

DELIMITER //
CREATE TRIGGER after_insert_compras
AFTER INSERT
   ON compras FOR EACH ROW

BEGIN

   INSERT INTO historicos
   ( id_compra,
     data,
     cliente,
     valor
   )
   VALUES
   ( NEW.id_compra,
     now(),
     NEW.cliente,
     NEW.valor);
END; //
DELIMITER ;


Tenho uma tabela1,  e uma tabela2  ligada a essa tabela1,  quando  eu deletar um elemento da tabela1 antes disso que quero que minha trigger delete todos os elementos da tabela2 que sejam relacionados a tabela1. Simples assim.

DELIMITER //
CREATE TRIGGER before_delete_tabela1
BEFORE DELETE ON tabela1
FOR EACH ROW
BEGIN
DELETE FROM tabela2 WHERE tabela1_id = OLD.id;
END; //
DELIMITER ;


Pra quem quiser aprender mais sobre Triggers, segue esse artigo muito bom:
http://www.devmedia.com.br/mysql-triggers/8088

Deixe uma resposta

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