gpt4 book ai didi

sql - pl/sql中有BEFORE SELECT触发器吗?

转载 作者:行者123 更新时间:2023-12-02 06:21:10 26 4
gpt4 key购买 nike

您好,我正在使用连接到 Oracle 数据库的 sqldeveloper。

我的 senario 是我的数据库中有一个客户表,其中包含一个名为 start_date 的日期字段,它包含用户注册当天的日期和一个名为 is_member< 的“ bool ”字段。每个成员资格仅持续一年,因此如果 SYSDATE > start_date + 1year,则 is_member 为 false。

我想在用户调用 select 语句之前检查用户是否仍然是成员(如果不是,则更改 is_member)。这可能吗?

如果没有,有人知道如何保持 is_member 字段最新吗?你能做一个每天调用一次的触发器来查看成员(member)资格是否已过期吗?

提前致谢! =]

最佳答案

不要使用表列来存储依赖数据,使用 View :

CREATE OR REPLACE VIEW customer_v AS
SELECT c.*,
CASE WHEN SYSDATE > add_months(c.start_date, 12)
THEN 'FALSE'
ELSE 'TRUE'
END is_member
FROM customer c

is_member View 列将始终包含最新数据。

关于sql - pl/sql中有BEFORE SELECT触发器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9331784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com