Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 创建将按间隔更新列的触发器_Mysql_Sql_Datetime_Triggers_Sql Insert - Fatal编程技术网

Mysql 创建将按间隔更新列的触发器

Mysql 创建将按间隔更新列的触发器,mysql,sql,datetime,triggers,sql-insert,Mysql,Sql,Datetime,Triggers,Sql Insert,抱歉,如果这是一个noob问题,因为我现在是一个noob问题,但是 我似乎在mysql触发器上有问题。我正在尝试创建一个触发器,该触发器将在插入后以5分钟的间隔自动更新数据dateValid DROP TRIGGERIF EXISTS `restrictionotp`;TRIGGER `add_interval` beforeINSERT on `date` FOR each row UPDATE date SET datevalid=date_add(new.datecreated

抱歉,如果这是一个noob问题,因为我现在是一个noob问题,但是
我似乎在
mysql触发器上有问题。我正在尝试创建一个触发器,该触发器将在插入后以5分钟的间隔自动更新数据dateValid

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

感谢您回答我的问题,只需设置触发器中的新值。然后,数据库将插入修改后的值,而不是原始值

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

谢谢,终于成功了。看起来我需要再次彻底研究SQL。