mysql状态触发函数

agyaoht7  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(363)

我想问一个mysql数据库的解决方案。因为我制作了数据库(order)大约3列,分别命名为order_date(datatype-date)、expired_date(datatype-date)和status(varchar(10))。
as状态值仅为新的和过期的。[仅为来自用户的“新”输入]
我想要的主要过程是
截止日期(从订单日期算起)应该知道当前日期做得很好
如果当前日期大于过期日期。应触发数据库并将状态列“new”更新为“expired”
据我所知,要做到这一点,我应该使用sql触发器。如何实现上述用例的触发器。

fhity93d

fhity93d1#

如果你在找一个 update 语句,设置新过期项目的状态,即:

update orders
set status = 'expired'
where curent_date > expired_date and status = 'new'

另一方面。。。在你的模式中, status 是派生信息,即可以从其他列的值推断其值的列。我不建议实际存储此信息,因为它需要额外且繁琐的维护过程。
相反,您可以创建一个视图,在查询时动态计算信息,并为您的数据提供始终最新的透视图。

create view view_orders as
select
    order_date,
    expired_date,
    case when curent_date > expired_date then 'expired' else 'new' end status
from orders

相关问题