#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.