SQL触发器 - 更新字段,其中日期早于当前日期

时间:2014-01-28 00:00:35

标签: mysql sql triggers phpmyadmin

我有一个事件表,其中包含它们在数据库中出现的日期。很自然地,当一个事件结束时,它不需要在网站上显示。目前我在表格中有一个标志为“活跃”。

我想知道处理已经过的事件的最佳方法是什么。我认为最好的方法是在phpmyadmin中创建一个事件,以便在凌晨1点,所有已超过日期的事件将其“活动”标志设置为0,但我听说这不是最好的方法它,因为它有更多的开销和不必要的i / o。

另一种选择是在db查询中处理它。从日期>的事件中选择* date AND active = 1。

两者都有效,但是有一个“主动”标记的事件,实际上并不是那种让我感到沮丧的事情。

处理此问题的最佳方法是什么,以及phpmyadmin中的触发器/事件是否正确。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以为此写一个视图:

create view v_table as
    select t.*, ( date > now() ) as IsActive;
    from table;

如果您真的想承担创建触发器和维护字段的负担,那么您可以这样做。但是,当视图很容易处理时,它似乎不值得。