我想从 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-community
如何在存储过程中做到这一点?