Criei minha table e tentei assim, mas da erro na hora de inserir, vejam a imagem do erro lá embaixo;
CREATE TABLE Ocorrencia (
id_ocorrencia int(11) NOT NULL PRIMARY KEY,
– data_hora datetime,
data_ocorrencia datetime ,
data_termino datetime,
tempo_duracao datetime
);
drop table ocorrencia;
CREATE TRIGGER trg_duracao BEFORE INSERT
ON Ocorrencia
FOR EACH ROW
SET NEW.tempo_duracao = (NEW.data_ocorrencia - data_termino);
INSERT INTO ocorrencia
(id_ocorrencia, data_ocorrencia, data_termino)
VALUES
(‘01’,‘2017-05-25 08:30:05’,‘2017-05-26 00:20:10’);
Olá Douglas.
Primeiramente você esta declarando o campo ‘id_ocorrencia’ como primary key, então ele não pode ser nulo. Porém, no insert, você não informou qual deve ser o valor de ‘id_ocorrencia’.
Em segundo lugar, o tipo datetime pode ter diferentes formas de inserção dependendo de qual banco de dados você está usando. No caso do MySQL você deve inserir um dado do tipo datetime no seguinte formato: ‘yyyy-mm-dd hh:mm:ss’, por exemplo ‘2017-05-26 22-30-00’
Fiz assim oh, mas ainda continua dando erro. Atualizei o post
Aqui funcionou sem problemas. Tenta digitar exatamente como a imagem e vê se roda.
1 curtida
Ainda não funcionou, olha…
Será que pq eu to criando a trigger antes?
Sim, é o trigger. Eu testei aqui e deu o mesmo erro.