Mysql - Triggers

14/07/2016

0

Boa tarde a todos
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

Ronaldo Paiva

Responder

Posts

14/07/2016

Raylan Zibel

Como ficou a sua trigger até agora? Cadê?

http://dev.mysql.com/doc/refman/5.7/en/trigger-syntax.html
Responder

14/07/2016

Ronaldo Paiva

Eu pesquisei mais não consegui fazer de forma alguma, peguei exemplos mais nada, amigo.
Responder

15/07/2016

Ronaldo Paiva

Estou tentando fazer assim!!
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 ;
Responder

15/07/2016

Raylan Zibel

Tente.

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;
Responder

15/07/2016

Ronaldo Paiva

Cara obrigado, consegui fazer usando o mesmo principio que o seu!!
Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar