Я создаю "перед вставкой" триггер. Что мне нужно сделать, это сравнить, если новая строка имеет разницу в 60 секунд (или 1 минуту) с последней строкой (с учетом времени).
Мой код следующий:
CREATE TRIGGER before_insert_detection
BEFORE INSERT ON detection
FOR EACH ROW
BEGIN
Declare oldDate date;
Declare newDate date;
Declare timediff int;
SELECT DATE_DETECTION into oldDate
FROM DETECTION ORDER BY DATE_DETECTION desc limit 1;
SET newDate = NEW.DATE_DETECTION;
SET timediff = (TIMESTAMPDIFF(SECOND, oldDate, newDate)) < 60;
IF timediff = 1
THEN SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = "Same detection less than a minute
ago";END IF;
END;;
Поэтому, если разница между двумя датами меньше минуты, timediff должен быть 1, а сообщение должно увеличиваться. Но этого не происходит ... Строки не вставляются, независимо от времени ...
Примеры вставок:
INSERT INTO DETECTION VALUES (1, '2019-10-15 12:00:01');
вставлено OK
INSERT INTO DETECTION VALUES (2, '2019-10-15 12:00:20');
вставлено OK, и это не должно произойти ...
Любая помощь?
Заранее спасибо !! :)