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

标签: sql MySQL Java
发布时间: 2015/6/12 0:08:48
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

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

在我的桌子,

tbl 成员:

id、 名称、 expirydate、 地位是字段。

如何使用这与触发器

(expirydate,区域)

CREATE
    TRIGGER autoupdation

    trigger_time UPDATE

    ON tbl-member FOR EACH ROW

    trigger_body

如何创建此函数 trigger_body...

字段 expirydate 检查系统日期与自动更新状态字段。

这里是检查更新的代码使用函数

@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;
    }

使用此函数程序运行慢

解决方法 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;
赞助商