在Navicat里面,找到函数,右键,新建函数,选择过程,如果有参数就填写函数,如果没有就直接点击完成

在BEGIN......END中间编写要执行的sql语句,例如下面存储过程取名为pro_data_bak:

BEGIN
/*把rd01_device_callback_data 2天前的数据备份到rd01_device_callback_data_bak*/
insert into rd01_device_callback_data_bak
(
id,
imei,
travelid,
gps_time,
receive_time,
transmit_time,
altitude,
speed,
latitude,
longitude,
course,
pdop,
satnum,
alarm_type0,
alarm_name0,
alarm_type1,
alarm_name1,
alarm_photo_linkurl,
startup_time,
shudown_time,
is_used,
create_time,
create_by,
update_time,
update_by
)SELECT
id id,
imei imei,
travelid travelId,
gps_time gpsTime,
receive_time receiveTime,
transmit_time transmitTime,
altitude altitude,
speed speed,
latitude
latitude,
longitude longitude,
course course,
pdop pdop,
satnum satNum,
alarm_type0 alarmType0,
alarm_name0 alarmName0,
alarm_type1 alarmType1,
alarm_name1 alarmName1,
alarm_photo_linkurl alarmPhotoLinkUrl,
startup_time startUpTime,
shudown_time shudownTime,
is_used isUsed,
create_time createTime,
create_by createPerson,
update_time updateTime,
update_by updatePerson
FROM
rd01_device_callback_data
WHERE
TO_DAYS(NOW()) - TO_DAYS(create_time) > 1;
/*删除rd01_device_callback_data 2天以前的数据*/
DELETE
FROM
rd01_device_callback_data
WHERE
TO_DAYS(NOW()) - TO_DAYS(create_time) > 1;
/*把rd02_device_info 2天前的数据备份到rd02_device_info_bak*/
insert into rd02_device_info_bak
(
id,
message_id,
message_property,
imei,
serial_number,
message_split,
message_body,
media_id,
check_code,
create_time,
create_person,
update_time,
update_person,
is_used
)SELECT
id id,
message_id
messageId,
message_property messageProperty,
imei imei,
serial_number
serialNumber,
message_split messageSplit,
message_body messageBody,
media_id meidiaId,
check_code checkCode,
create_time createTime,
create_person createPerson,
update_time updateTime,
update_person
updatePerson,
is_used isUsed
FROM
rd02_device_info
WHERE
TO_DAYS(NOW()) -
TO_DAYS(create_time) > 1;
/*删除rd02_device_info 2天前的数据*/
DELETE
FROM
rd02_device_info
WHERE
TO_DAYS(NOW()) -
TO_DAYS(create_time) > 1; /*把rd_track_info 7天前的数据备份到rd_track_info_bak*/
insert into rd_track_info_bak
(
id,
license_plate,
device_id,
address_name,
altitude,
speed,
driving_direction,
longitude,
latitude,
gps,
back_time,
road_name,
road_code,
road_level,
road_speed_limit,
back_seq_no,
create_time,
del_flag,
alarm_type0,
alarm_name0,
alarm_type1,
alarm_name1,
alarm_photo_linkurl,
gps_time
)SELECT
id id,
license_plate licensePlate,
device_id deviceId,
address_name addressName,
altitude altitude,
speed speed,
driving_direction drivingDirection,
longitude longitude,
latitude latitude,
gps gps,
back_time backTime,
road_name roadName,
road_code roadCode,
road_level roadLevel,
road_speed_limit roadSpeedLimit,
back_seq_no backSeqNo,
create_time createTime,
del_flag delFlag,
alarm_type0 alarmType0,
alarm_name0 alarmName0,
alarm_type1 alarmType1,
alarm_name1 alarmName1,
alarm_photo_linkurl alarmPhotoLinkurl,
gps_time gpsTime
FROM
rd_track_info
WHERE
TO_DAYS(NOW()) - TO_DAYS(gps_time) > 7;
/*删除rd_track_info 7天前的数据*/
DELETE
FROM
rd_track_info
WHERE
TO_DAYS(NOW()) - TO_DAYS(gps_time) > 7;
END

然后在xml里面引用,statementType="CALLABLE"表示调用存储过程。

<mapper namespace="com.ra.truck.mapper.DataBakMapper">
<select id="callProcedureOfDataBak" statementType="CALLABLE">
{call pro_data_bak()}
</select>
</mapper>

通过java定时调度调用这个存储过程就OK了

mysql使用navicat编写调用存储过程的更多相关文章

  1. MySQL学习笔记:调用存储过程或函数报1418错误

    问题 MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误: ERROR 1418 (HY000): This function has none of DE ...

  2. 如何在MySQL客户端Navicat 上创建存储过程返回结果集

    下述引用自<MySQL 必知必会> MySQL命令行客户机的分隔符 如果你使用的是MySQL命令行实用程序,应该仔细阅读此说明.默认的MySQL语句分隔符为;(正如你已经在迄今为止所使用的 ...

  3. JDBC基础篇(MYSQL)——使用CallabeStatement调用存储过程

    注意:其中的JdbcUtil是我自定义的连接工具类:代码例子链接: package day04_callable; import java.sql.CallableStatement; import ...

  4. mysql数据库之事务与存储过程

    事务 什么是事务? 事务是指一些SQL语句的集合,这些语句同时执行成功完成某项功能 事务的CAID特性: 原子性:一个事务的执行是整体性的,要么内部所有语句都执行成功,要么一个都别想成功 一致性:事务 ...

  5. MySQL存储过程和自定义函数、Navicat for mysql、创建存储过程和函数、调用存储过程和函数的区别

    1 MySQL存储过程和函数 过程和函数,它们被编译后保存在数据库中,称为持久性存储模块(Persistent Stored Module,PSM),可以反复调用,运行速度快. 1.1 存储过程 存储 ...

  6. mysql高级:触发器、事务、存储过程、调用存储过程

    一.触发器 二.pymysql事务测试 三.存储过程 四.pymysql调用存储过程 一.触发器  在某个时间发生了某个事件时  会自动触发一段sql语句 create trigger cmd_ins ...

  7. 020、MySQL创建一个存储过程,显示存储过程,调用存储过程,删除存储过程

    一.我们创建一个MySQL储存过程,在SQL代码区写入以下内容,并执行就可以了 #编写一个存储过程 CREATE PROCEDURE ShowDate ( ) BEGIN #输出当前时间 SELECT ...

  8. MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程

    虽然MySQL的存储过程,一般情况下,是不会使用到的,但是在一些特殊场景中,还是有需求的.最近遇到一个sql server向mysql迁移的项目,有一些sql server的存储过程需要向mysql迁 ...

  9. iBatis调用存储过程以及MySQL创建存储过程

    首先是MySQL中创建存储过程的SQL -- 列出全部的存储过程 SHOW PROCEDURE STATUS; -- 查看一个已存在的存储过程的创建语句,假设此存储过程不存在,会提示SQL错误(130 ...

随机推荐

  1. 一个ajax请求,接收json数据

    <a id="inviterDel" onclick="delInviter(${item.inviterAddId})">删除</a> ...

  2. aws小结

    IAM:亚马逊访问权限控制(AWS Identity and Access Management ) https://www.cnblogs.com/andy9468/p/10635019.html ...

  3. MHA 实现VIP切换用到脚本

    在MHA Manager端配置中,如果实现MHA的vip故障切换需要在配置文件/etc/masterha/app1/app1.cnf 中启用下面三个参数: master_ip_failover_scr ...

  4. Python3学习之路~6.7 经典类和新式类的继承顺序

    在Python中,经典类(class Person:)和新式类(class Person(object):)的主要区别就是体现在多继承的顺序上. Python 2.x中默认都是经典类,只有显式继承了o ...

  5. wx:Textctrl

    import wx class Mywin(wx.Frame): def __init__(self, parent, title): super(Mywin, self).__init__(pare ...

  6. golang 中处理大规模tcp socket网络连接的方法,相当于c语言的 poll 或 epoll

    https://groups.google.com/forum/#!topic/golang-nuts/I7a_3B8_9Gw https://groups.google.com/forum/#!ms ...

  7. C 语言boolean 值判断

    printf("%d\n", !0);       1           1 printf("%d\n", !0);     #include <std ...

  8. Hadoop生态集群hdfs原理(转)

    初步掌握HDFS的架构及原理 原文地址:https://www.cnblogs.com/codeOfLife/p/5375120.html   目录 HDFS 是做什么的 HDFS 从何而来 为什么选 ...

  9. 15个Node.js项目列表

    前言: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台,是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascri ...

  10. sublime使用经验汇总

    1. source insight 会对某个修改频繁的文件做多次备份.我们用sublime进行多个文件搜索时,需要把备份的文件排除在外. e:\work\code\sourcev, *.h, *.cp ...