簡體   English   中英

使用 MySQL Scheduler 從表中刪除行

[英]delete rows from a table using MySQL Scheduler

我有一個名為:“regkeys”的 MySQL 表。 該表有兩列:“keyCat”和“keyNum”。 在我的網絡應用程序中,我有一個 keygen 模塊,該模塊將一個密鑰(1134fb)和一個類別(mds 或 dts 等)添加到該表中。

我想要完成的是:在發出(添加到數據庫中)一個鍵后,我想創建一個 MySQL 事件來刪除在我的表中停留/停留時間超過 2 天(左右)的鍵,這樣使密鑰過期(例如: - 從創建時間算起,計算 2 天,每個密鑰都必須被刪除,某些密鑰遲早會被刪除,這取決於它們的創建時間)。 我查看了MySQL 的 API ,但我需要一些邏輯方面的幫助。 我不知道如何告訴事件只刪除存儲了 2 天(左右)的密鑰。 我希望有人能給我一個簡單的例子或指導我獲得一個清晰的教程。

非常感謝您提前。

編輯:我想我發現了另一個對我的問題有所幫助的問題。 我想我以錯誤的方式(基於密鑰)進行了處理。 由於每個鍵和鍵類別都插入到一行中,調度程序應該處理行而不是鍵。

這是解決方案:

  1. 像這樣在數據庫中啟用 event_scheduler: SET GLOBAL event_scheduler = ON;
  2. 使用 MySQL 默認值在我的表中添加了一個時間戳列
  3. 我創建了一個事件, CREATE EVENT <name>
  4. 調用事件按如下ON SCHEDULE EVERY 20 SECOND運行: ON SCHEDULE EVERY 20 SECOND
  5. 將 SQL 查詢添加到事件: DO DELETE FROM <table_name> WHERE <time_stamp_column> < NOW() - INTERVAL 5 MINUTE

暫無
暫無

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

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