我想从MySQL 存储过程执行一个CREATE EVENT sql。
SQL构建如下:
SET @sql=CONCAT('CREATE EVENT myevent',md5(concat(@dt1,@dt2)),' ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 0 SECOND
DO
call genRoutes(''',@dt1,''',''',@dt2,''');
');
生成的@sql查询如下所示:
CREATE EVENT myeventcadb1e41722fb3c9b2e6992e740d76ca ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 0 SECOND
DO
call genRoutes('2011-04-07 00:00:00','2011-04-14 00:00:00');
服务器版本5.1.31-社区
如何在存储过程中执行此操作?
答案 0 :(得分:1)
如果您不能直接执行此操作,也许您可以在表中存储对genRoutes(或其他)的即将调用,并使用单个事件来管理下一个调用。每当您添加到即将发生的呼叫表时,如果新呼叫比表中最快的呼叫更快,您可以调用alter the event以在新时间触发。当事件触发时,调用所有准备好的,从表中删除它们,并在下次最快的调用时更改事件以触发。
或者,你可以只有一个小时,15分钟,5分钟(或其他)触发的事件,并轮询表格以准备就绪。