gpt4 book ai didi

mysql - 在事件中运行某些程序失败

转载 作者:行者123 更新时间:2023-11-29 00:57:54 26 4
gpt4 key购买 nike

我想在特定时间调用程序,所以我设置了一个事件来为我执行此操作(调用程序)。代码如下所示:



<pre>CALL MainProcedure(@firstOutParam, @secondOutParam);

SELECT @moveId, @endTime; #select just for check if parameters are ok

CREATE EVENT myevent1 ON SCHEDULE AT @endTime DO CALL
`database`.`SupportingProcedure`(@firstOutParam);

CREATE EVENT myevent2 ON SCHEDULE AT @endTime DO CALL `database`.`OnlyForTestProcedure`();

</pre>

两者都是 SupportingProcedureOnlyForTestProcedure当调用不是从事件正常工作时,myevent2 也会调用 . OnlyForTestProcedure .

唯一不起作用的是myevent1。它出现在show events ,它然后消失但它不起作用(SupportingProcedure 没有被调用或不起作用..)。

你看到我做错了什么吗?我应该怎么做才能让它发挥作用?感谢任何帮助,我不知道还有什么要检查的。

最佳答案

您是否启用了事件调度程序?

您需要在 [mysqld] 部分下的 my.cnf 中输入:

event_scheduler=on

如果事件以某种方式失败,mysql 对诊断它的支持很差,但是您会在 mysql 日志文件中看到一些日志条目(通常位于 mysql 数据目录中,例如/var/lib/mysql 或下面系统日志/var/log)

文档声明没有办法将参数传递给事件调用的过程或从过程中传递参数,因此您传入 @firstOutParam 的第一个事件可能无法正常工作。要解决这个问题,您必须将 SQL 动态构建为文本并执行它。

SET @sql = CONCAT("CREATE EVENT myevent1 ON SCHEDULE AT ", @endTime, " DO CALL 
`database`.`SupportingProcedure`(",@firstOutParam,")");
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

关于mysql - 在事件中运行某些程序失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com