mysql - 在存储过程中创建事件
Posted
技术标签:
【中文标题】mysql - 在存储过程中创建事件【英文标题】:mysql - create event in store procedure 【发布时间】:2013-01-02 10:37:54 【问题描述】:如何在存储过程中创建事件?
这是我一直在尝试做的,它告诉我有语法错误,只是它没有告诉我在哪里。
-- --------------------------------------------------------------------------------
-- 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 语句的递归被禁止 存在
但是还没有解决办法,那我该怎么办呢?
【问题讨论】:
【参考方案1】:您不能创建内部程序。需要单独定义。
只需检查 Mysql Event Scheduler 详细博客:http://goo.gl/6Hzjvg
【讨论】:
阅读最后一行:语法”。您可以创建一个事件作为存储例程的一部分,但一个事件不能由另一个事件创建。【参考方案2】:“CREATE EVENT”和“ALTER EVENT”我们在特殊的外部应用程序中由 将“请求”直接发送到 MySQL 引擎数据库。
将触发器或过程中的行插入特殊表“Need create_alter event” 和特殊的外部应用程序循环读取行,然后直接发送关于 创建/更改 MySQL 引擎数据库的事件
【讨论】:
以上是关于mysql - 在存储过程中创建事件的主要内容,如果未能解决你的问题,请参考以下文章