Создание триггера, который обновит столбец с интервалом

#mysql #sql #datetime #triggers #sql-insert

#mysql #sql #дата и время #триггеры #sql-вставка

Вопрос:

Извините, если это вопрос новичка, поскольку я сейчас один, но
, похоже, у меня проблема с mysql trigger . Я пытаюсь создать триггер, который автоматически обновит данные dateValid с интервалом в 5 минут от данных DateCreated после вставки.

 DROP TRIGGERIF EXISTS `restrictionotp`;TRIGGER `add_interval` beforeINSERT 
on `date` FOR each row 
UPDATE date 
SET    datevalid=date_add(new.datecreated, interval 5 minute) 
WHERE  dateid=new.dateid
  

Приведенный выше код был успешно создан, но как только я пытаюсь вставить данные в указанную таблицу, появляется эта ошибка

 Can't update table 'verification' in stored function/trigger because
 it is already used by statement which invoked this stored function/trigger
  

Спасибо, что ответили на мой вопрос

Ответ №1:

Просто set new значение в триггере. Затем база данных вставит измененное значение вместо исходного.

 DELIMITER //
CREATE TRIGGER Add_Interval 
    BEFORE INSERT ON verification 
    FOR EACH ROW 
BEGIN
    SET new.datevalid = new.datecreated   INTERVAL 5 MINUTE;
END;
//
DELIMITER ;
  

Комментарии:

1. Спасибо, наконец-то сработало. похоже, мне нужно снова тщательно изучить SQL.