Ir ao conteúdo
  • Cadastre-se

Como criar uma trigger para validação de dados e Carregamento de dados obrigatór


Posts recomendados

Gente, já tentei fazer, mas não funciona, vejam:

Validação de dados;

Carregamento de dados obrigatórios (datas, usuários, etc..);

 

TENTEI ASSIM, MAS N FUNCIONA; TO ME ENROLANDO NA SINTAX;

CREATE TRIGGER tri_
   BEFORE INSERT ON ocorrencia
   FOR EACH ROW
 BEGIN
   IF NOT EXISTS(SELECT tempo_duracao FROM ocorrencia WHERE id_ocorrencia)
   THEN
	   INSERT INTO ocorrencia VALUES (NEW.id_ocorrencia, TIMEDIFF(NEW.data_termino, NEW.data_ocorrencia);
	ELSE
	PRINTF 'voce PRECISA INSERIR OS DADOS OBRIGATORIOS';
   END IF
 END;


TODO MEU BANCO CRIADO ATÉ AGORA;

create database calamidadepublica;

Create table ocorrencia (
    id_ocorrencia INT NOT NULL AUTO_INCREMENT,
    data_ocorrencia DATETIME NOT NULL,
    data_termino DATETIME NOT NULL,
    primary key(id_ocorrencia)
    );


Create table tempo_total (
    codigo_ocorrencia INT NOT NULL,
    tempo_duracao TIME
);


ALTER TABLE tempo_total ADD CONSTRAINT fk_ocorrencia FOREIGN KEY (codigo_ocorrencia) REFERENCES ocorrencia(id_ocorrencia);

delimiter //

CREATE DEFINER=`root`@`localhost` TRIGGER `trigger_tempo` AFTER INSERT ON `ocorrencia` 
FOR EACH ROW 

begin
   insert into tempo_total
       (codigo_ocorrencia, tempo_duracao)
       values
       (NEW.id_ocorrencia, TIMEDIFF(NEW.data_termino, NEW.data_ocorrencia));        
end;//




INSERT INTO ocorrencia
(data_ocorrencia, data_termino)
VALUES
('2017-07-12 09:30:05', '2017-07-12 10:00:10');

UPDATE ocorrencia
SET data_termino = '2017-07-13 10:00:00'
WHERE id_ocorrencia = '2';

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...