我正在使用postgresql,以前从未创建过触发器/过程。
我有一个表,其中包含一个人的活动,状态和ID。
我需要的是这样的: 假设Lunch_time是“表Person”中的一列,并且包含如下数据:11:00 am。
When now() = lunch_time then UPDATE status.
我一直在寻找一个使用cron的示例,该示例每分钟执行一次php脚本,但我担心服务器会增压。
有一种简单的方法吗?谢谢大家。
答案 0 :(得分:0)
假设您有一个表T1 (id , status , activity , person_id)
和人员表为Person( person_id , lunch_time)
。您不必创建每分钟的数据,而只需创建一个视图,然后选择该view。
该视图应如下所示:
CREATE VIEW T1_with_lunch_status AS
SELECT T1.id ,
case when now() = lunch_time then 'Its lunch time' else 'Working Time' end as status,
T1.activity , T1.person_id
FROM T1
INNER JOIN Person P on (P.person_id = T1.person_id) ;
请注意,我使用的连接更加严格,您应该根据数据库的设计使用连接类型,并且条件now() = lunch_time
仅在确切时间匹配时才会返回true,因此您可以考虑将截断/修剪时间设置为分钟/小时,具体取决于您的convenience。