我必须编写一个存储过程,需要在其中创建一个事件。由于存储过程调用取决于触发的操作,因此需要为创建的事件指定不同的名称。
CREATE EVENT variable
ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 1 MINUTE
DO
Insert into dummy ('abc');
变量名称需要是一个动态变量,但mysql不允许我从存储过程中执行此操作。如何实现这一目标?
答案 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