从数据库获取通知

时间:2012-02-23 11:37:55

标签: sql database notifications alerts

我有数据库,例如SQL,并从三方获取数据到我的数据库(每次都更新)。我需要在考试时收到我的申请通知:

select * form table Bonus > 50%

我应该使用Windows服务并检查所有数据库,还是可以在sql中设置它并从SQL获取警报?我应该尽快收到通知,以便每隔1或5秒检查数据库就太难了。

1 个答案:

答案 0 :(得分:3)

这取决于您的数据库。几乎所有数据库都可以在数据更改时运行触发器,但触发器内的代码通常是SQL(不支持打开连接等)。

有些人,比如Oracle,允许触发器,他们也可以运行Java代码。在这里,您可以在数据库中构建解决方案。

但有一个缺点:如果无法发送信号会怎样?是否应该回滚整个交易(这将损害其他相对不相关的服务。

因此,通常的解决方案是编写每小时左右运行有问题查询的代码,然后在满足条件时发送信号。

如果查询很昂贵,那么你可以将两者混合:只有当某些内容发生了变化时才运行查询(使用触发器)并将结果保存在表格中(例如“$ timestamp发生的事情)”。在你的应用中,只需检查自上次信号以来是否有更新。