php - 有没有办法在一段时间后从表中动态删除一行?
问题描述
从正在创建的行开始 12 小时后,我试图从我的表中删除一行。
我的表中有一个 dateTime 列,它记录了它的创建时间,有没有办法在 12 小时后动态删除一行?这产生的另一个问题是日期可能会在 12 小时内发生变化,这可能会使行的时间戳变得无关紧要。
尽管我不知道如何处理问题的日期更改方面,但我尝试从我在类似问题上找到的示例中执行一些简单的 SQL 查询。
示例查询:
DELETE FROM detail1 WHERE date < DATETIME('NOW', '-1 hours');
这是我的桌子:
ID |Position| dateApplied
1 | 1 | 2019-07-20 05:23:16
2 | 2 | 2017-07-20 12:13:30
我想找到一个查询来帮助我在 12 小时后删除每一行。
解决方案
您应该创建一个脚本并使用Cron Jobs定期调用它,在该脚本中检查所有行并删除过期的行。如果您在表格中保存“到期时间”会更容易:
$expireAfter = time() + (12 * 60 * 60); // time returns number of seconds since the Unix Epoch
然后在周期性脚本中,您可以检查该行是否过期:
$now = time();
$queryString = "DELETE FROM detail1 WHERE `expiry_time` < $now;";
使用这种方法,您无需担心更改日期。
推荐阅读
- python - 从 pandas 读取一个大的 CSV 文件后,我在我的工作簿中得到了一个荒谬的文件输出
- python - 熊猫:融化具有相同索引的多个列
- laravel - Git - 用新版本替换 Laravel 安装
- coldfusion - Lucee cfmail 消息 ID
- sprite - 如何在godot上做复合精灵
- javascript - Cypress 捕获所有请求 cy.Route()
- android - 在 LeakCanary 泄漏跟踪中查找原因
- django - 扩展 AbstractUser 后 Django 未创建用户
- linux - 将 500 个文件压缩成一个输出文件
- android - RecyclerView 崩溃同时快速滚动和过滤