一种基于MySQL的系统促销时间到期自动更新的方法与流程

文档序号:15615808发布日期:2018-10-09 21:20阅读:594来源:国知局
本发明涉及mysql平台
技术领域
:,特别涉及一种基于mysql的系统促销时间到期自动更新的方法。
背景技术
::在进行各种促销等活动时,活动会有一个结束时间,到结束时间时必须更新促销的状态,但这个状态如果使用手工操作,不仅浪费人力、时间,有时还会遗忘,造成客户还以为活动在进行的错觉;为了解决这个问题,需要实现一种促销结束时就能自动更新促销状态的功能。技术实现要素:本发明解决的技术问题在于提供一种基于mysql的系统促销时间到期自动更新的方法;解决了需要通过后台管理页面进行手工更新表中促销字段状态的问题。本发明解决上述技术问题的技术方案是:在项目所属的mysql数据库里新增一张促销信息的表,里面有促销主键、促销结束时间及促销状态等字段;然后创建一个存储过程,遍历表中的促销结束时间,将其一一与当前时间对比,判断其是否过期,如果过期就更新促销状态信息为结束;最后再创建一个任务事件,调用存储过程,定时更新过期的促销状态字段信息。从而解决了需要通过后台管理页面进行手工更新表中促销字段状态的问题。所述的方法具体包括如下步骤:步骤一、创建一个有促销主键、促销结束时间及结束任务等字段的促销表;步骤二、在当前项目所属的mysql数据库中创建一个存储过程;步骤三、在存储过程定义整形变量done与字符型变量row_id、再创建一个游标rs_cursor;步骤四、查询出促销表中状态为进行中的促销主键,在没有返回值时初始done值,开启游标,循环,把游标中存储的主键值取出赋予row_id;步骤五、把表里的促销结束时间与当前时间对比,判断是否过期,如果过期,更新主键等于row_id的促销状态为结束,并结束循环,关闭游标;步骤六、创建一个任务,定义开始日期,并隔一定时间调用存储过程,更新促销状态信息。本发明的有益效果:在项目所属的mysql数据库里新增一张促销信息的表,里面有促销主键、促销结束时间及促销状态等字段;然后创建一个存储过程,遍历表中的促销结束时间,将其一一与当前时间对比,判断其是否过期,如果过期就更新促销状态信息为结束;最后再创建一个任务事件,调用存储过程,定时更新过期的促销状态字段信息,从而达到自动更新表中促销状态信息的目的。有效解决了需要通过后台管理页面进行手工更新表中促销字段状态的问题。附图说明下面结合附图对本发明进一步说明:图1为本发明的流程图。具体实施方式如图1所示,本发明采用如下步骤:步骤一、创建一个有促销主键、促销结束时间及结束任务等字段的促销表;createtable`promotionstrategy`(`promotionstrategyid`varchar(50)notnullcomment'促销策略id',`promotionstartdate`datetimedefaultnullcomment'开始时间',`promotionenddate`datetimedefaultnullcomment'结束时间',`promotionstate`int(11)defaultnullcomment'促销状态:-1删除,0未开始,1进行中,2已结束,3暂停中',……)engine=innodbdefaultcharset=utf8comment='促销策略管理';步骤二、在当前项目所属的mysql数据库中创建一个存储过程;如:createdefiner=`root`@`%`procedure`newproc`()begin……end;步骤三、在存储过程定义整形变量done与字符型变量row_id、再创建一个游标rs_cursor;declaredoneint;declarerow_idvarchar(32);--定义策略iddeclarers_cursorcursorfor--定义游标步骤四、查询出促销表中状态为进行中的促销主键,在没有返回值时初始done值,开启游标,循环,把游标中存储的主键值取出赋予row_id;//promotionstate=1表示促销进行中selectpromotionstrategyidfrompromotionstrategywherepromotionstate=1;declarecontinuehandlerfornotfoundsetdone=1;openrs_cursor;cursor_loop:loopfetchrs_cursorintorow_id;--取数据ifdone=1thenleavecursor_loop;endif;步骤五、把表里的促销结束时间与当前时间对比,判断是否过期,如果过期,更新主键等于row_id的促销状态为结束,并结束循环,关闭游标;//promotionstate=2表示促销结束updatepromotionstrategysetpromotionstate=2wheretime_to_sec(timediff(now(),promotionenddate))>0andpromotionstrategyid=row_id;endloopcursor_loop;closers_cursor;步骤六、创建一个任务,定义开始日期,并隔一定时间调用存储过程,更新促销状态信息。createdefiner=`root`@`%`event`newevent`onscheduleevery60secondstarts'2018-04-0310:17:00'oncompletionpreserveenabledocallupdate_promotion_state();--调用存储过程。技术特征:技术总结本发明涉及基于MySQL平台
技术领域
:,特别涉及一种基于MySQL的系统促销时间到期自动更新的方法。本发明的方法是在项目所属的MySQL数据库里新增一张促销信息的表,里面有促销主键、促销结束时间及促销状态等字段;然后创建一个存储过程,遍历表中的促销结束时间,将其一一与当前时间对比,判断其是否过期,如果过期就更新促销状态信息为结束;最后再创建一个任务事件,调用存储过程,定时更新过期的促销状态字段信息。本发明解决了需要通过后台管理页面进行手工更新表中促销字段状态的问题。技术研发人员:陈林;张来卿;庞严冬受保护的技术使用者:珠海横琴盛达兆业科技投资有限公司技术研发日:2018.05.09技术公布日:2018.10.09
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1