我正在使用 postgresql,之前從未創建過觸發器/過程。我有一張表,其中包含一個人的活動、狀態和 ID。我需要的是這樣的:假設lunch_time是來自表Person的一列,并且包含如下數據:上午11:00。When now() = lunch_time then UPDATE status.我一直在尋找一個使用 cron 的示例,該示例每分鐘執行一個 php 腳本,但我擔心服務器會增壓。有一種簡單的方法嗎?多謝你們。
1 回答

慕虎7371278
TA貢獻1802條經驗 獲得超4個贊
假設您有一個表T1 (id , status , activity , person_id)
和人員表Person( person_id , lunch_time)
。您可以簡單地創建一個視圖,然后選擇該視圖,而不是每分鐘更新一次數據。視圖應該看起來像這樣:
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,因此您可以根據您的方便考慮將時間截斷/修剪為分鐘/小時。
- 1 回答
- 0 關注
- 163 瀏覽
添加回答
舉報
0/150
提交
取消