用navcat編寫定時任務調用存儲過程

 

最近項目須要改動比較大,數據庫結構也有所改變,這時就須要轉移舊數據到新庫中mysql

第一時間想到的是用代碼操做,因爲兩個庫表結構不一樣,實體什麼的得須要從新生成sql

並編寫轉移代碼,這將是很大的工做量;數據庫

而後就想着安全

用腳本解決問題,方式以下:bash

先編寫腳本服務器

#!/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;

而後寫定時任務執行該腳本測試

連接數據庫服務器,輸入命令ui

crontab -e

編寫定時任務spa

#定時調用腳本,每小時執行一次
0 */1 * * * /bin/sh /home/credit_back/credit_db_backup.sh

查看定時任務code

crontab -l

這種方式是能夠解決問題,可是腳本中須要數據庫密碼,爲了安全我

採用navcat編寫定時任務

首先,打開navcat,查詢定時任務是否開啓

show variables like '%sche%';

此時是關閉的,須要開啓

set global event_scheduler = ON

定時任務開啓後,開始編寫存儲過程

如何編寫能夠搜一下,下面是個人存儲過程

最後編寫定時任務,右擊新建事件

即調用剛纔寫的存儲過程

CALL TransferData()

設置定時計劃,爲了測試,每分鐘執行一次

 下面就等待1分鐘看執行結果了

相關文章
相關標籤/搜索