Navicat通过存储过程和事件实现每日数据自动刷新

由于报表统计需要,研究了一下navicat的存储过程和事件的调度,实现起来很简单,也很实用,这里记录一下。

大致的流程是这样的:

Navicat通过存储过程和事件实现每日数据自动刷新

一、建立更新用的数据表

二、创建存储过程

Navicat通过存储过程和事件实现每日数据自动刷新

过程:一般用来对数据表的操作   函数:一般用于计算输出某个值

选择过程,模式这里会出现3个参数,IN代表你的参数是一个输入的参数,out代表你的参数是一个输入的参数,inout代表你的参数是一个输入或输出的参数。这里是参数是为了让事件调度的时候可以传入相应的值。

Navicat通过存储过程和事件实现每日数据自动刷新

到了过程编辑的页面,在begin和end之间写入数据更新的脚本逻辑。一般数据更新的逻辑是删除旧数据,插入新数据。往前多跑8天,避免业务库修改了历史数据,这样第二天重跑的时候新数据能把旧的数据覆盖。(此处的pt_date是我定义的in参数)。配置好之后保存。这里我的过程名称是p_update_xx

Navicat通过存储过程和事件实现每日数据自动刷新

Navicat通过存储过程和事件实现每日数据自动刷新

三、定义事件

Navicat通过存储过程和事件实现每日数据自动刷新

创建一个事件,直接call p_update_xx()过程的名称,就能正常调用你的存储过程了。括号内传入你的参数。

Navicat通过存储过程和事件实现每日数据自动刷新

重点是在你的计划这里填写好时间,一次性的就配置在上方的at。一次性的执行完之后,事件文件也被删除了。

每日执行的,就在下面这个every这里,配置每天的7点半的话,就每天自动执行了。事件执行完之后没有被删除。