一尘不染

Tabe字段状态自动更新检查系统日期,使用MySQL和Java中的查询

sql

使用mysql和java中的查询检查系统日期和到期日期时,表字段状态自动更新

在我的表上

tbl成员:

ID,名称,到期日期,状态 是字段。

如何与 TRIGGER* 一起使用 *

(到期日期,系统日期)

CREATE
    TRIGGER autoupdation

    trigger_time UPDATE

    ON tbl-member FOR EACH ROW

    trigger_body

如何为此功能创建trigger_body …

字段到期日期检查系统日期,并自动更新状态字段。

这是用于校验的代码使用功能

@Override
    public List<Member> FindExpiredMembers() throws ParseException {
        List<Member> memberlistforreturn=new ArrayList<>();
        List<Member> memberlist=getAllMember();
        java.util.Date utilDate=new java.util.Date();
        java.sql.Date sqldate=new java.sql.Date(utilDate.getTime());


        for(Member i : memberlist){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        java.util.Date exp_Date=sdf.parse(sqldate.toString());
        java.util.Date renew_Date=sdf.parse(i.getRenewDate().toString());
            if(renew_Date.compareTo(exp_Date)<0){
                memberlistforreturn.add(i);
                i.setStatus(true);
                update(i);
            }
        }
        System.out.println(memberlistforreturn.size());

        System.out.println("working...!!!!!!");
        return memberlistforreturn;
    }

使用此功能,程序运行缓慢


阅读 134

收藏
2021-05-16

共1个答案

一尘不染

这应该是BEFORE UPDATE触发器的一部分。

for each row begin
    if new.expirydate < curdate() then
        set new.status = 1;  -- still active
    else set new.status = 0; -- expired
    end if;
end;
2021-05-16