shell脚本中执行db2数据库 *** 作,不知道哪里错了

shell脚本中执行db2数据库 *** 作,不知道哪里错了,第1张

方法一、适合所有格式的mysql数据库,通过对数据库导出导进写个脚本定时执行:
1导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > /存放路径/wcncsql
2导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> /存放路径/wcnc_userssql
3导出一个数据库结构 mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路径/wcnc_dbsql
定义:
-d 没有数据
--add-drop-table 在每个create语句之前增加一个drop table
4导入数据库 常用source 命令 进入mysql数据库控制台:
如mysql -u root -p mysql>use 数据库
方法二、针对mysql数据表格式为MyISAM的
假如数据文件在/var/lib/mysql
那么直接写个脚本
cp -r /var/lib/mysql /备份到的文件夹路径
隔机备份用rsync增量,或定时完整备份。

用存储过程啊,给你个简单的例子
CREATE PROCEDURE SPCARDTRACE
(
IN I_CARDNO VARCHAR(10)
)
-- 存储过程功能 :
-- 创建人:
-- 创建日期:
-- 参数说明:
-- 01 : I_CARDNO 卡号
-- 02 :
-- 03 :
LANGUAGE SQL
SPECIFIC SPCARDTRACE
DYNAMIC RESULT SETS 1
MODIFIES SQL DATA
BEGIN
DECLARE V_CARDNO VARCHAR(10); --卡号
DECLARE V_EMPNAME VARCHAR(16); --持卡人
DECLARE V_CARDBALANCE DECIMAL(8,2); --卡余额
DECLARE V_HAPPENDATE INT;--统计时间
DECLARE V_MINTIME TIMESTAMP; --最小时间
DECLARE V_MAXTIME TIMESTAMP; --最大时间
DECLARE V_MINMONTH INT ;
DECLARE V_MAXMONTH INT ;
DECLARE V_ISSUECARDDATE TIMESTAMP; --发卡时间
DECLARE V_SUBSIDYMONEY DECIMAL(8,2);--补贴金额
DECLARE V_CONSUMEMONEY DECIMAL(8,2);--冲值金额
DECLARE V_PUTMONEY DECIMAL(8,2);--冲值金额
DECLARE V_OUTMONEY DECIMAL(8,2);--退款金额
DECLARE V_CHANGEMONEY DECIMAL(8,2);--改卡差额
DECLARE V_STRSQL VARCHAR(1000); --SQL
DECLARE CS CURSOR WITH RETURN TO CALLER FOR RETURNTABLE;

INSERT INTO TBCARDTRACE ( CARDNO,EMPNAME,CARDBALANCE,ISSUECARDDATE ,HAPPENDATE,
SUBSIDYMONEY,PUTMONEY,OUTMONEY ,CONSUMEMONEY,CHANGEMONEY )
VALUES (V_CARDNO,V_EMPNAME,V_CARDBALANCE,V_ISSUECARDDATE,V_HAPPENDATE,
V_SUBSIDYMONEY,V_PUTMONEY,V_OUTMONEY,V_CONSUMEMONEY,V_CHANGEMONEY);
END


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13322899.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-14
下一篇 2023-07-14

发表评论

登录后才能评论

评论列表(0条)

保存