使用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; }
使用此功能,程序运行缓慢
这应该是BEFORE UPDATE触发器的一部分。
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;