无新数据库记录的每日警报

时间:2012-02-23 11:36:38

标签: mysql alert

如果在一定时间内没有新记录插入MySQL数据库,如何设置要发送的电子邮件警报?

我有一个由id和datetime字段组成的简单表。理想情况下,如果在每天上午10:00之前将 no 记录插入数据库,我希望收到电子邮件提醒。这完全可行吗?

谢谢。

3 个答案:

答案 0 :(得分:1)

您可以通过带有cron job字段的sql查询设置datetime,以获取1天间隔的gettng记录。

没有记录(count=0),那么您需要执行发送邮件警报的代码。

查询将如下所示:

SELECT  count(id)
FROM    mytable
WHERE   datetime_field_date BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()

请做必要的更改。

答案 1 :(得分:0)

您可以设置一个cron作业

前者

 0 10 * * * Your job over here

0分钟

10小时

所以每天上午10点cron都会执行你的工作。

如需更多参考,请浏览此网站http://www.adminschoice.com/crontab-quick-reference

答案 2 :(得分:0)

假设您想要将其完全保留在数据库中,您需要创建一个每天运行一次的事件(例如10:00:01)。 Find out more

此事件将执行查询以检查自上次检查后是否已收到任何记录。像the query proposed by Teez这样的东西就足够了。

但是,您可能希望为此添加更多智能,以允许中断。如果数据库在10.00.01关闭并且查询最终在10:05运行,你不希望在10:04收到的消息破坏结果(或者你会吗?取决于业务规则 - 也许该记录应该已插入09:59但数据库已关闭......)

无论如何,如果查询计数为零,那么您要发送警报。有一个名为MySQL Messages的项目,它提供了API来完成这项工作。 Check it out

由于此处有几个电话,您需要使用BEGINEND来声明这些语句。

如果确实沿着此路线前进,请确保已启用事件计划程序。 Find out more