MySql 关于状态的触发函数

MySql Trigger Function about status

我想问一个mysql数据库的解决方案。因为我将数据库(订单)中的 3 列命名为 order_date(数据类型 - 日期),expired_date(数据类型 - 日期)和状态(varchar(10))。

因为状态值只有新的和过期的。[因为只有 'New' 来自用户的输入]

我要的主进程是

据我所知,要完成此操作,我应该使用 SQL 触发器。如何为上述用例实现触发器。

如果您正在寻找 update 定期 运行 并设置新过期项目状态的声明,则为:

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

另一方面...在您的架构中,status 是一个 derived 信息,即一个列,其值可以从其他列的值中推断出来列。我不建议实际存储此信息,因为它需要额外且繁琐的维护过程。

相反,您可以创建一个视图,在查询时即时计算信息,并让您始终了解最新的数据。

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