猿问

在 postgres / CRON 中创建触发器

我正在使用 postgresql,之前从未创建过触发器/过程。

我有一张表,其中包含一个人的活动、状态和 ID。

我需要的是这样的:假设lunch_time是来自表Person的一列,并且包含如下数据:上午11:00。

When now() = lunch_time then UPDATE status.

我一直在寻找一个使用 cron 的示例,该示例每分钟执行一个 php 脚本,但我担心服务器会增压。

有一种简单的方法吗?多谢你们。


月关宝盒
浏览 125回答 1
1回答

慕虎7371278

假设您有一个表T1 (id , status , activity , person_id)和人员表Person( person_id , lunch_time)。您可以简单地创建一个视图,然后选择该视图,而不是每分钟更新一次数据。视图应该看起来像这样:CREATE VIEW T1_with_lunch_status ASSELECT T1.id ,       case when now() = lunch_time then 'Its lunch time' else 'Working Time' end as status,T1.activity , T1.person_idFROM T1INNER JOIN Person P on (P.person_id = T1.person_id) ;请注意,我使用的是更严格的连接,您应该根据您的数据库设计和条件使用连接类型,例如now() = lunch_time仅当确切的时间匹配时才会返回 true,因此您可以根据您的方便考虑将时间截断/修剪为分钟/小时。
随时随地看视频慕课网APP
我要回答