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

时间:2014-02-25 05:33:20

标签: java mysql sql

使用mysql&中的查询检查系统日期和expirydate时,

表字段状态自动更新的java

在我的表格中,

TBL-构件:

id,name,expirydate,status 是字段。

如何在 TRIGGER

中使用此功能

(expirydate,systemdate)

CREATE
    TRIGGER autoupdation

    trigger_time UPDATE

    ON tbl-member FOR EACH ROW

    trigger_body

如何为此功能创建trigger_body ...

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

这是check-updation的代码使用函数

@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 个答案:

答案 0 :(得分:3)

这应该是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;