如何创建一个触发器来发送电子邮件

问题描述 投票:0回答:1

我正试图在SQL中创建一个触发器,向特定的地址发送电子邮件。大致情况是这样的。

  1. 我创建了一个 select 返回一个警报列,如果余额较低则显示1,如果不低则显示0。
  2. 我需要创建一个 trigger 如果警报栏为1,就会发送电子邮件。
  3. selecttrigger 需要每周执行一次。

什么是实现这一目标的最佳方式?任何指南都会很有帮助。我使用的是Firebird数据库。

sql firebird
1个回答
1
投票

虽然数据库引擎可能 倡议 发邮件 只需要在数据库服务器中做一些简短(快速)和无错误的操作。

应该有另一个应用程序服务程序在运行,它应该根据在SQL领域准备的数据来做电子邮件。问题是这个发件人应用程序应该在什么时候被触发。

与数据库无关的方法是按预定的时间间隔轮询数据库,传统上称为 "cron "动作,由Rajiv Shah提到。一分钟一次、一秒钟一次或者一小时一次--由你选择。

火鸟特有的方法是使用 POST_EVENT <string constant> 命令。它可以代替基于时间的轮询,也可以与之一起使用。

下面是这个例子。

CREATE TRIGGER POST_NEW_ORDER FOR SALES
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
  POST_EVENT 'new_order';
END

https:/firebirdsql.orgfiledocumentationreference_manualsfblangref25-enhtmlfblangref25-psql-coding.html#fblangref25-psql-postevent。

你的程序如何订阅这些事件将取决于编程语言和火鸟访问库。据我所知,PHP可能不太适合,因为它更适合通过守护进程的请求来运行短脚本,而不是作为一个持续运行的守护进程本身。不过也许PHP大师可以两全其美。也不知道PHP是否有对火鸟事件的支持,它似乎不是脚本语言的重点。

你可以通过谷歌阅读更多关于事件的内容 Firebird POST_EVENT在众多的链接中,有一些是这样的。


2
投票

您可以实施 CRON 并定期检查您正在使用的堆栈中的列,如果符合您的标准,则发送电子邮件。

© www.soinside.com 2019 - 2024. All rights reserved.