Mysql - Triggers
14/07/2016
0
Venho humildemente pedir ajuda, sou iniciante e não tenho muita habilidade com Mysql, e estou desenvolvendo um pequeno sistema de controle de Processos, até ai tudo bem, mais estou necessitando criar uma trigger e não estou conseguindo de forma alguma!!
Tenho que comparar o natureza ( atual e antigo) e gravar na Tabela B, será alguém pode me ajudar dando um luz de como fazer isso?????
Desde já agradeço.
Tabela A:
CREATE TABLE inqueritos.ips(
Id_Inquerito INT (11) NOT NULL AUTO_INCREMENT,
Tipo_Instaraucao VARCHAR (30) DEFAULT NULL,
Natureza VARCHAR (200) DEFAULT NULL,
NumProcesso VARCHAR (100) DEFAULT NULL,
Vara VARCHAR (100) DEFAULT NULL,
Status INT (11) DEFAULT 0,
Situacao_IP VARCHAR (50) DEFAULT NULL,
Relatado INT (11) DEFAULT 0,
Responsavel VARCHAR (100) DEFAULT NULL,
`Responsavel_Atualização` VARCHAR (100) DEFAULT NULL,
PRIMARY KEY (Id_Inquerito)
)
ENGINE = INNODB
AUTO_INCREMENT = 1204
AVG_ROW_LENGTH = 478
CHARACTER SET utf8
COLLATE utf8_general_ci;
Tabela B:
CREATE TABLE inqueritos.tabela_historico(
Id_Hist INT (11) NOT NULL AUTO_INCREMENT,
Responsalvel VARCHAR (100) DEFAULT NULL,
DataOcorrecia DATE DEFAULT NULL,
Ocorrencia VARCHAR (2500) DEFAULT NULL,
Status_Formulario VARCHAR (50) DEFAULT NULL,
HorarioEntrada TIME DEFAULT NULL,
HorarioSaida TIME DEFAULT NULL,
PRIMARY KEY (Id_Hist)
)
ENGINE = INNODB
AUTO_INCREMENT = 260
AVG_ROW_LENGTH = 253
CHARACTER SET utf8
COLLATE utf8_general_ci;
Ronaldo Paiva
Posts
14/07/2016
Raylan Zibel
http://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html
14/07/2016
Ronaldo Paiva
15/07/2016
Ronaldo Paiva
Mais não funciona
Exemplo
DELIMITER $$
CREATE
DEFINER = 'root'@'localhost'
TRIGGER Atualziar_IPs
AFTER UPDATE
ON Ips
FOR EACH ROW
BEGIN
BEGIN
IF (NEW.Natureza <> OLD.Natureza) THEN
INSERT
INTO tabela_historico (Responsalvel, DataOcorrecia, Ocorrencia, Status_Formulario, HorarioEntrada, HorarioSaida)
VALUES (old.Responsavel_Atualizacao, NOW(),Old.Natureza, 'Atualização, null, null);
END IF;
END$$
DELIMITER ;
15/07/2016
Raylan Zibel
CREATE TRIGGER ips_after_upd_tr1 AFTER UPDATE ON ips FOR EACH ROW BEGIN IF (NEW.Natureza <> OLD.Natureza) THEN INSERT INTO tabela_historico (Responsalvel, DataOcorrecia, Ocorrencia, Status_Formulario, HorarioEntrada, HorarioSaida) VALUES (Responsavel_Atualizacao, NOW(),Old.Natureza, 'Atualização', null, null); END IF; END;
15/07/2016
Ronaldo Paiva
Clique aqui para fazer login e interagir na Comunidade :)