【发布时间】:2011-07-12 02:59:00
【问题描述】:
我想从 MySQL 存储过程执行一个 CREATE EVENT sql。
- 我不能使用 PREPARE,因为 PREPARE 中不允许 CREATE EVENT,我想使用一个随机名称,因为我需要创建一个唯一的事件,并且我需要在 DO 部分传递一些日期参数。
- MySQL 没有 EXEC。
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-社区
如何在存储过程中做到这一点?
【问题讨论】:
标签: mysql sql stored-procedures mysql-event