使用动态事件名称创建MySQL事件

时间:2011-06-04 07:35:03

标签: mysql events stored-procedures

我必须编写一个存储过程,需要在其中创建一个事件。由于存储过程调用取决于触发的操作,因此需要为创建的事件指定不同的名称。

CREATE EVENT variable
    ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
    DO
    Insert into dummy ('abc');

变量名称需要是一个动态变量,但mysql不允许我从存储过程中执行此操作。如何实现这一目标?

1 个答案:

答案 0 :(得分:0)

MySQL中的不可能,这个:

PREPARE stmt_name FROM CONCAT(CREATE EVENT ",@variable
    ,"ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE "
    ,"DO Insert into dummy (test) VALUES (?);"

SET @test_parm = "abc";

EXECUTE stmt_name USING @test_parm;
DEALLOCATE PREPARE stmt_name;

不起作用,因为你不能在准备好的声明中这样做。

请参阅:http://dev.mysql.com/doc/refman/5.5/en/sql-syntax-prepared-statements.html