存储过程中是否存在SLEEP()的方法?

Don*_*ool 13 mysql sleep stored-procedures

我有一个存储过程,我想永远运行,但在循环中睡一秒钟.当它醒来时,它会轮询一个表,看它是否应该做一些工作.工作只需要每分钟完成,因此不必担心轮询表会同时受到来自两个编写者的更新的影响.

存储过程中SLEEP()间隔的最佳方法是什么?实际上,如果它可以睡200毫秒,那将是很好的,但是一秒钟也会工作.

Rog*_*Ray 21

我遇到了同样的问题.经过谷歌搜索后,我发现我们可以使用

SELECT SLEEP(<seconds>);
Run Code Online (Sandbox Code Playgroud)

延迟我们的程序这么多秒.在你的情况下,使用

SELECT SLEEP(0.2);
Run Code Online (Sandbox Code Playgroud)

会没事的.

  • 此外,如果你不需要de查询结果(你可能没有,因为select sleep()只带0)你可以使用"DO SLEEP(<seconds>);" (5认同)

Stu*_*art 0

您不指定您正在使用哪个数据库,但通常实现您想要的目的的方法不是拥有无限运行的存储过程,而是拥有一些外部组件 - 例如调度程序或 MSSQL 中的 SQL Server 代理 - 每隔一段时间执行存储过程。