每天早上8点调度事件的mysql事件调度程序

时间:2013-12-20 04:35:30

标签: php mysql sql events scheduler

我在phpmyadmin上查看了事件调度程序已关闭。我的网站是实时的,我不知道让事件调度程序on可以产生任何不良影响吗?

我想创建应该每天早上执行的事件,从表中获取一些值并在页面上显示。

CREATE EVENT rate ON SCHEDULE EVERY 24 HOUR STARTS '2011-12-01 8:00:00' DO BEGIN

END

查询我想在内部事件中执行:

SELECT url,sentiment, count(url) from userpost where userid='".$userid."' group by url order by count(url) desc;

我很困惑。

将在phpmyadmin上创建活动。查询应该在php页面上执行,以获取要在页面上显示的值。

如何管理这种情况?

2 个答案:

答案 0 :(得分:1)

您必须将event_scheduler变量的状态更改为ON

在phpmyadmin上运行以下查询

SET GLOBAL event_scheduler = ON;

编辑::

你必须创建一个可以由Windows调度程序每天早上8点调用的php页面,然后在你的页面上你可以直接调用你的查询。您不能使用mysql事件调度程序来执行此操作。您可以使用Windows调度程序或其他一些应用程序来完成它。

答案 1 :(得分:1)

看起来你对MySQL事件或任何事件调度程序的目的有点困惑。它用于批处理处理,无法将任何结果集单独返回给客户端。

  

CREATE EVENT Syntax
  只返回a的SELECT或SHOW等语句   结果集在事件中使用时无效;这些的输出   不会发送到MySQL监视器,也不会存储在任何地方。然而,   您可以使用SELECT ... INTO和INSERT INTO等语句...   存储结果的SELECT。 (参见本节的下一个示例   后者的一个例子。)

现在,如果您需要从php页面执行查询,请继续执行此操作。

另一方面,如果您想预先计算一些(资源密集型)结果集,您可以使用INSERT INTO ... SELECT ... FROM ...语法和事件来执行它并将结果存储在表中。然后从php页面中获取并从该表中显示它们。