我有一个事件表,以及它们在数据库中发生的日期。因此,自然地,当事件结束后,它不需要显示在网站上。目前我在表中有一个“事件”标志。
我想知道处理已经过去的事件的最佳方法是什么。我认为最好的方法是在 phpmyadmin 中创建一个事件,这样在凌晨 1 点,所有已经过了日期的事件都会将其“事件”标志设置为 0,但我听说这不是最好的方法它,因为它有更多的开销和不必要的 I/O。
另一个选择是在数据库查询中处理它。从日期 > 日期 AND 事件 = 1 的事件中选择 *。
两者都有效,但是有一个“事件”标记的事件,实际上并不活动,这让我感到沮丧。
处理这个问题的最佳方法是什么,以及 phpmyadmin 中的触发器/事件是否可以。我该怎么办?
最佳答案
您可以为此编写一个 View :
create view v_table as
select t.*, ( date > now() ) as IsActive;
from table;
如果您确实想承担创建触发器和维护字段的负担,那么您可以这样做。然而,当 View 很容易处理这个问题时,这似乎不值得。
关于mysql - SQL 触发器 - 更新日期早于当前日期的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21394333/