繁体   English   中英

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

[英]SQL Trigger - Update field where date is older than current date

我有一张事件表,其中有一个事件发生在数据库中的日期。 因此,自然而然地,当一个事件完成时,它不需要在网站上显示。 目前,我在表中有一个标记为“有效”。

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

另一种选择是在数据库查询中处理它。 从日期>日期AND有效= 1的事件中选择*。

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

处理此问题的最佳方法是什么,如果是phpmyadmin中的触发器/事件,那是什么。 我该怎么办?

您可以为此编写一个视图:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM