如何创建触发器以发送电子邮件
How to create a trigger to send email
我正在尝试在 SQL 中创建一个触发器来向特定地址发送电子邮件。大纲是:
- 我创建了一个
select
,其中 returns 一个警报列,如果余额不足则指示 1,否则指示 0。
- 我需要创建一个
trigger
如果警报列为 1,它会发送一封电子邮件。
select
和trigger
需要每周执行一次
完成此任务的最佳方法是什么?任何指导方针都会有所帮助。我正在使用 Firebird 数据库。
您可以在您正在使用的堆栈中实施 CRON 并定期检查列,如果满足您的条件,请发送电子邮件。
虽然数据库引擎可以发起 电子邮件发送,但它永远不会执行 发送本身。
只应在数据库服务器中执行一些简短(快速)且无错误的操作。
应该还有另一个application/service/daemon 运行ning,它应该根据SQL领域中准备的数据来发送电子邮件。问题是什么时候应该触发这个发件人应用程序。
与数据库无关的方法是按预定的时间间隔轮询数据库,这在传统上被昵称为 "cron" 操作,由 Rajiv Shah 提到。一分钟一次或一秒一次或一小时一次 - 由您选择。
Firebird 特有的方法是使用 POST_EVENT <string constant>
命令。它可以代替基于时间的轮询或与它一起使用。
示例如下:
CREATE TRIGGER POST_NEW_ORDER FOR SALES
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
POST_EVENT 'new_order';
END
您的程序如何订阅这些事件取决于编程语言和 Firebird 访问库。据我所知,PHP 可能不太适合那里,因为它更适合 运行 守护进程请求的短脚本,而不是连续 运行ning 守护进程本身。虽然也许 PHP 专家可以兼得。我也不知道 PHP 是否支持 Firebird 事件,它似乎不是脚本语言的优先级。
您可以通过谷歌搜索 Firebird POST_EVENT
阅读更多关于活动的信息,例如,在许多链接中将有:
- Is it possible to use arguments with firebird events : POST_EVENT 'event_name' + string args?
- https://mikejustin.wordpress.com/2012/11/06/firebird-database-events-and-message-oriented-middleware/
- https://www.firebirdsql.org/file/documentation/papers_presentations/Power_Firebird_events.pdf
我正在尝试在 SQL 中创建一个触发器来向特定地址发送电子邮件。大纲是:
- 我创建了一个
select
,其中 returns 一个警报列,如果余额不足则指示 1,否则指示 0。 - 我需要创建一个
trigger
如果警报列为 1,它会发送一封电子邮件。 select
和trigger
需要每周执行一次
完成此任务的最佳方法是什么?任何指导方针都会有所帮助。我正在使用 Firebird 数据库。
您可以在您正在使用的堆栈中实施 CRON 并定期检查列,如果满足您的条件,请发送电子邮件。
虽然数据库引擎可以发起 电子邮件发送,但它永远不会执行 发送本身。 只应在数据库服务器中执行一些简短(快速)且无错误的操作。
应该还有另一个application/service/daemon 运行ning,它应该根据SQL领域中准备的数据来发送电子邮件。问题是什么时候应该触发这个发件人应用程序。
与数据库无关的方法是按预定的时间间隔轮询数据库,这在传统上被昵称为 "cron" 操作,由 Rajiv Shah 提到。一分钟一次或一秒一次或一小时一次 - 由您选择。
Firebird 特有的方法是使用 POST_EVENT <string constant>
命令。它可以代替基于时间的轮询或与它一起使用。
示例如下:
CREATE TRIGGER POST_NEW_ORDER FOR SALES
ACTIVE AFTER INSERT POSITION 0
AS
BEGIN
POST_EVENT 'new_order';
END
您的程序如何订阅这些事件取决于编程语言和 Firebird 访问库。据我所知,PHP 可能不太适合那里,因为它更适合 运行 守护进程请求的短脚本,而不是连续 运行ning 守护进程本身。虽然也许 PHP 专家可以兼得。我也不知道 PHP 是否支持 Firebird 事件,它似乎不是脚本语言的优先级。
您可以通过谷歌搜索 Firebird POST_EVENT
阅读更多关于活动的信息,例如,在许多链接中将有:
- Is it possible to use arguments with firebird events : POST_EVENT 'event_name' + string args?
- https://mikejustin.wordpress.com/2012/11/06/firebird-database-events-and-message-oriented-middleware/
- https://www.firebirdsql.org/file/documentation/papers_presentations/Power_Firebird_events.pdf