Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda sobre triggers


ronaldo luiz de paiva

Pergunta

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;

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

O trigger de insert não tem valores antigos (OLD)

O trigger de delete não tem valores novos (NEW)

O que você precisa é de um trigger que ocorra antes de um update. (before update) Onde voce poderá comparar valores novos e antigos.

Deverá ser BEFORE pois a comparação deve ocorrer antes da gravação. Depois disso não haverá valores NEW.

DELIMITER $$

CREATE TRIGGER `nomedobanco`.`meutriggerdeupdate` BEFORE UPDATE
ON `meubanco`.`minhatabela`
FOR EACH ROW BEGIN
    IF NEW.natureza <> OLD.natureza THEN
       grave aqui
    END IF;
END$$

DELIMITER ;

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...