簡體   English   中英

如何每 20 和 30 分鍾更新一次值?

[英]How can I update value every 20 and 30 minutes?

我有一個表“comenzi”,每個訂單都有一個進行中的值,另一個用於准備和數據。 每個訂單在創建時的 in progress 和 ready 值都等於 0。我想更新 in progress 和 ready 的值,時間為 1 分鍾,20 分鍾后,然后是訂單完成后 30 分鍾,值來自具有 2020-05-25 09:41:00 形式的數據。

我需要一種方法來更新這些值、數據庫中的函數或事件。

昨天我在一個寵物項目中使用事件處理一些事情。 您可以使用類似的方法。

這段代碼使用了一個creation列,它只是一個TIMESTAMP列,默認值為CURRENT_TIMESTAMP (因為我沒有你的數據)和一個value列(默認值 0),它從 1 - 2(你可以修改這個代碼以滿足您的需求)。

SET值使用CASE來檢查訂單創建的時間。 然后它相應地更新值。 您可以更改事件以更新您需要的任何列/時間情況。

CREATE DEFINER =`root`@`localhost` EVENT `progressEvent`
  ON SCHEDULE EVERY 1 MINUTE STARTS '2020-09-01 00:00:00'
  ON COMPLETION PRESERVE ENABLE DO UPDATE comenzi
SET `value` = (
  CASE WHEN (creation < (CURRENT_TIMESTAMP - INTERVAL 30 MINUTE))
  THEN 2
  CASE WHEN (creation < (CURRENT_TIMESTAMP - INTERVAL 20 MINUTE))
  THEN 1
  END)
WHERE value < 2

編輯:將其更改為每分鍾檢查一次,並且僅檢查 20/30 分鍾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM