zoukankan      html  css  js  c++  java
  • 用navcat编写定时任务调用存储过程

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

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

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

    然后就想着

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

    先编写脚本

    #!/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 "
    ">>${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分钟看执行结果了

  • 相关阅读:
    Linux反编译
    函数调用 堆栈
    机器学习经典书籍
    linux kernel系列四:嵌入式系统中的文件系统以及MTD
    Linux Kernel系列三:Kernel编译和链接中的linker script语法详解
    单页面响应式模板:血色圆月
    Disqus评论框改造工程-Jekyll等静态博客实现Disqus代理访问
    25个Web前端开发工程师必看的国外大牛和酷站
    我们是谁? 程序员!
    GitHub万星项目:黑客成长技术清单
  • 原文地址:https://www.cnblogs.com/java-spring/p/11083678.html
Copyright © 2011-2022 走看看