Mysql 基于时间的触发器
我正在编写一个项目,我需要在MySQL中使用一个基于时间的触发器。在这个项目中,有一个预约模块,限制15天。这15天结束后,必须触发触发器并将新的15天插入表中。我如何在MySQL中做到这一点?您的代码有很多问题:Mysql 基于时间的触发器,mysql,Mysql,我正在编写一个项目,我需要在MySQL中使用一个基于时间的触发器。在这个项目中,有一个预约模块,限制15天。这15天结束后,必须触发触发器并将新的15天插入表中。我如何在MySQL中做到这一点?您的代码有很多问题: 使用分隔符,如中所述 如中所述,每15天在中的天结束时不得有S 文档中说“与存储例程一样,您可以通过使用BEGIN和END关键字在DO子句中使用复合语句语法”,因此必须在第一个DO关键字之后添加BEGIN关键字 表示代码必须包含在搜索时的和搜索时的之间 在您的INSERT中,da
- 使用分隔符,如中所述
- 如中所述,
每15天在
中的
天结束时不得有
S
- 文档中说“与存储例程一样,您可以通过使用BEGIN和END关键字在DO子句中使用复合语句语法”,因此必须在第一个
关键字之后添加DO
关键字BEGIN
- 表示代码必须包含在搜索时的
和搜索时的
之间
- 在您的
中,INSERT
是一个字段:将其括在反勾中,而不是引号中day
DELIMITER $$$
CREATE EVENT autoDayInsert ON SCHEDULE EVERY 15 DAY DO BEGIN
SET @dayCounter = 0;
WHILE @dayCounter < 15 DO
INSERT INTO appointmentDays(`day`) VALUES(NOW() + INTERVAL @dayCounter DAY);
SET @dayCounter = @dayCounter +1;
END WHILE;
END $$$
DELIMITER ;
分隔符$$$
按计划每15天创建事件autoDayInsert开始
设置@dayCounter=0;
而@dayCounter<15 DO
在appointmentDays(`day`)值中插入(NOW()+INTERVAL@dayCounter-day);
设置@dayCounter=@dayCounter+1;
结束时;
结束$$$
定界符;
我建议你阅读我在回答中给出的链接。将来遇到问题时,请参阅官方文档:文档中提供的信息准确且最新,并且几乎总是附带许多示例来帮助理解要使用的语法。您的代码存在许多问题:
- 使用分隔符,如中所述
- 如中所述,
每15天在
中的
天结束时不得有
S
- 文档中说“与存储例程一样,您可以通过使用BEGIN和END关键字在DO子句中使用复合语句语法”,因此必须在第一个
关键字之后添加DO
关键字BEGIN
- 表示代码必须包含在搜索时的
和搜索时的
之间
- 在您的
中,INSERT
是一个字段:将其括在反勾中,而不是引号中day
DELIMITER $$$
CREATE EVENT autoDayInsert ON SCHEDULE EVERY 15 DAY DO BEGIN
SET @dayCounter = 0;
WHILE @dayCounter < 15 DO
INSERT INTO appointmentDays(`day`) VALUES(NOW() + INTERVAL @dayCounter DAY);
SET @dayCounter = @dayCounter +1;
END WHILE;
END $$$
DELIMITER ;
分隔符$$$
按计划每15天创建事件autoDayInsert开始
设置@dayCounter=0;
而@dayCounter<15 DO
在appointmentDays(`day`)值中插入(NOW()+INTERVAL@dayCounter-day);
设置@dayCounter=@dayCounter+1;
结束时;
结束$$$
定界符;
我建议你阅读我在回答中给出的链接。将来遇到问题时,请参考官方文件:其中提供的信息准确且最新,而且几乎总是有很多例子来帮助理解要使用的语法。我想您是在寻找
事件调度程序
而不是触发器
触发器是在操作时触发的,并且在时间间隔内执行的代码是使用事件调度程序处理的,因为这些都是事件。就像我之前评论正确的人一样,您需要执行存储过程或插入序列的事件调度器,这是您的选择。谢谢您的评论。我又有问题了。我试图使用此事件代码,但mysql不接受此代码。错误在哪里?单击问题下方的“编辑”并将代码直接添加到问题中。我猜您正在查找事件调度程序
而不是触发器
触发器是在操作时触发的,并且使用事件调度程序处理按时间间隔执行的代码,因为这些都是事件。就像我之前评论正确的人一样,您需要执行存储过程或插入序列的事件调度器,这是您的选择。谢谢您的评论。我又有问题了。我试图使用此事件代码,但mysql不接受此代码。错误在哪里?单击问题下方的“编辑”,并将代码直接添加到问题中。