1

我有一个名为:“regkeys”的 MySQL 表。该表有两列:“keyCat”和“keyNum”。在我的网络应用程序中,我有一个 keygen 模块,它将一个键(1134fb)和一个类别(mds 或 dts 等)添加到此表中。

我想要完成的是:在发出(添加到数据库中)一个键之后,我想创建一个 MySQL 事件来删除在我的表中停留/停留超过 2 天(左右)的键,这种方式使密钥过期(例如: - 从创建之日起,计算 2 天,每个密钥都必须被删除,某些密钥比其他密钥早晚被删除,具体取决于它们的创建时间)。我查看了MySQL 的 API,但我需要一些逻辑帮助。我不知道如何告诉事件只删除存储了 2 天(左右)的密钥。我希望有人能给我一个简单的例子或指导我看一个清晰的教程。

非常感谢您提前。

编辑:我想我发现了另一个对我的问题有帮助的问题。我认为我的做法是错误的(基于密钥)。由于每个键和键类别都插入一行,因此调度程序应该处理行而不是键。

4

1 回答 1

4

这是解决方案:

  1. 像这样在数据库中启用 event_scheduler:SET GLOBAL event_scheduler = ON;
  2. 使用 MySQL 默认值在我的表中添加了一个时间戳列
  3. 我创建了一个事件, CREATE EVENT <name>
  4. 调用事件按如下计划运行:ON SCHEDULE EVERY 20 SECOND
  5. 将 SQL 查询添加到事件:DO DELETE FROM <table_name> WHERE <time_stamp_column> < NOW() - INTERVAL 5 MINUTE
于 2013-09-10T00:48:29.517 回答