最近项目需要改动比较大,数据库结构也有所改变,这时就需要转移旧数据到新库中

第一时间想到的是用代码操作,由于两个库表结构不同,实体什么的得需要重新生成

并编写转移代码,这将是很大的工作量;

然后就想着

用脚本解决问题,方式如下:

先编写脚本

#!/bin/bash
# Define log
TIMESTAMP=`date +%Y%m%d%H%M%S`
LOG=call_sql_${TIMESTAMP}.log
echo "Start execute sql statement at `date`." >>${LOG}
# execute sql stat
mysql -u**** -p**** -e "
tee /home/credit_back/temp.log
#转移用户登录表
INSERT IGNORE INTO credit_db.c_user_login_info(username, password, enabled, realname, phone, company, registration_time, last_login_time, dk_id, channel_id) SELECT username, password, enabled, realname, phone, company, registration_time, last_login_time, dk_id, channel_id FROM credit.c_user_login_info;
#更新注册来源,账号状态
UPDATE credit_db.c_user_login_info SET register_source='h5',account_status=1 WHERE register_source is null;
notee
quit" echo -e "\n">>${LOG}
echo "below is output result.">>${LOG}
cat /home/credit_back/temp.log>>${LOG}
echo "script executed successful.">>${LOG}
exit;

然后写定时任务执行该脚本

链接数据库服务器,输入命令

crontab -e

编写定时任务

#定时调用脚本,每小时执行一次
0 */1 * * * /bin/sh /home/credit_back/credit_db_backup.sh

查看定时任务

crontab -l

这种方式是可以解决问题,但是脚本中需要数据库密码,为了安全我

采用navcat编写定时任务

首先,打开navcat,查询定时任务是否开启

show variables like '%sche%';

此时是关闭的,需要开启

set global event_scheduler = ON

定时任务开启后,开始编写存储过程

如何编写可以搜一下,下面是我的存储过程

最后编写定时任务,右击新建事件

即调用刚才写的存储过程

CALL TransferData()

设置定时计划,为了测试,每分钟执行一次

下面就等待1分钟看执行结果了

用navcat编写定时任务调用存储过程的更多相关文章

  1. mysql使用navicat编写调用存储过程

    在Navicat里面,找到函数,右键,新建函数,选择过程,如果有参数就填写函数,如果没有就直接点击完成 在BEGIN......END中间编写要执行的sql语句,例如下面存储过程取名为pro_data ...

  2. MyBatis学习总结(六)——调用存储过程(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013518.html 一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存 ...

  3. MyBatis入门学习教程-调用存储过程

    一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_incr ...

  4. MyBatis学习总结(六)——调用存储过程

    一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_ ...

  5. MyBatis学习总结(六)——调用存储过程

    一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_incr ...

  6. Java数据库连接——JDBC调用存储过程,事务管理和高级应用

    一.JDBC常用的API深入详解及存储过程的调用 相关链接:Jdbc调用存储过程 1.存储过程(Stored Procedure)的介绍 我们常用的操作数据库语言SQL语句在执行的时候需要先编译,然后 ...

  7. MyBatis——调用存储过程

    原文:http://www.cnblogs.com/xdp-gacl/p/4270352.html 一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 ...

  8. MyBatis学习总结_06_调用存储过程

    一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 1 create table p_user( 2 id int primary key auto_ ...

  9. SQL serve创建与调用存储过程

    (1)创建 2编写存储过程(创建传参的存储过程)存储过程语法网络上很多不在累述 语法解析 Use Person 指定在那个数据库下建立存储过程 if (object_id('MyFunction', ...

随机推荐

  1. CodeForces - 377A Maze BFS逆思维

    Maze Pavel loves grid mazes. A grid maze is an n × m rectangle maze where each cell is either empty, ...

  2. SQL Server服务器连接配置

    一.首先确保服务器能在本地打开数据库 如果碰到本地无法连接到数据库,首先要确认上图中两个服务是否开启 二.其次,要配置远端可连接的用户 如图,配置数据库[属性]中[安全性]为混合验证,勾中允许远程连接 ...

  3. Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

    一.前言 Job for mysqld.service failed because the control process exited with error code. See "sys ...

  4. cf786C(xjb)

    题目链接:http://codeforces.com/problemset/problem/768/C 题意:给出一个数组,经过k次操作后最大元素和最小元素分别是什么.. 操作:给当前数组排序,再将第 ...

  5. Aufree/trip-to-iOS

    https://github.com/Aufree/trip-to-iOS?utm_source=next.36kr.com  

  6. Java程序员需要突破的技术要点

    一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...

  7. C 语言实例 - 计算平均值

    C 语言实例 - 计算平均值 C 语言实例 C 语言实例 使用数组来计算几个数的平均值. 实例 #include <stdio.h> int main() { int n, i; ], s ...

  8. max函数的用法

    题目是   给你一段全英文本,求这段文本中出现次数最多的字母 import string def checkio(text): text = text.lower() return max(strin ...

  9. 推荐 VS2010入门教程—鸡啄米

    http://www.jizhuomi.com/catalog.asp?tags=VS2010 推荐 VS2010入门教程—鸡啄米,真的非常使用和经典!

  10. 存储-InfluxDB

    1 TSDB influxDB是一个time series时间序列数据库. 在监控系统的开发中,大体分为采集-存储-可视化三个大类.监控指标有很显著的时间特征数据,一般采用TSDB存储. 在TSDB中 ...