4

如何在存储过程中创建事件?

这是我一直在尝试做的,它告诉我我有一个语法错误,只是它没有告诉我在哪里。

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `update_leaderboard`()
BEGIN


CREATE EVENT update_leaderboard_event
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 minute
    DO call update_leaderboard();



END

编辑: 根据我的 MySql(最后一行),它应该是可能的:

句法”。您可以创建一个事件作为存储例程的一部分,但一个事件不能由另一个事件创建。

Edit2发现问题:

错误 1576:当正文存在时,禁止递归 EVENT DDL 语句

但是还没有解决办法,那我该怎么办呢?

4

2 回答 2

2

You cant create inside procedure. You need to define it separately.

Just check Mysql Event Scheduler
detail blog: http://goo.gl/6Hzjvg

于 2013-01-18T16:52:37.833 回答
0

“CREATE EVENT”和“ALTER EVENT”我们通过直接“请求”到 MySQL 引擎数据库在特殊的外部应用程序中创建。

将触发器或过程中的行插入到特殊表“Need create_alter event”和特殊的外部应用程序循环读取行,然后直接向 MySQL-engine 数据库发送有关 create/alter 事件的请求

于 2014-05-08T14:28:09.833 回答