【shell】定时删除DB2表数据
使用db2的时候,有时候需要对表数据进行删除,防止数据太多,造成数据库空间满了
以下是一个定时删除表tmp,tm1中id为1的数据的脚本
#!/bin/sh
##----------------------------------------------------------
##--功能说明:定时删除数据
##--开发公司:XXX
##--作者:qys
##--时间:2019-01-02
##--输入参数:无
##--版本维护
## 版本: 更新日期: 更改人: 更改说明:
## --------------------------------------------------------
## v1.0 2019-01-02 qys 创建shell脚本
##--------------------------------------------------------------
#定义数据库连接变量
dbname='QINDB'
dbuser='db2inst1'
dbpwd='db2inst1'
#连接数据库
connDB2()
{
db2 get connection state | grep 'Connected'>/dev/null
res1=$? #获取上一命令的执行状态
if [[ $res1 -eq 0 ]]
then
echo "The DB has been connected!">>deleteTable.log
else
db2 connect to $dbname user $dbuser using $dbpwd>/dev/null
res2=$?
i=0
while [ $i -lt 3 ]
do
i='expr $i + 1'
if [[ $res2 -eq 0 ]]
then
echo "The DB has been connected!">>deleteTable.log
break
else
sleep 3
db2 connect to $dbname user $dbuser using $dbpwd>/dev/null
res2=$?
fi
done
fi
}
#删除表操作
TableAry=("TMP" "TMP1")
deleteTable()
{
for Tablename in "${TableAry[@]}"
do
sql="delete from ${Tablename} WHERE ID=1"
echo "Action sql:$sql">>deleteTable.log
db2 $sql>>deleteTable.log
echo "The ${Tablename}'s data has been detete!">>deleteTable.log
done
} #断开数据库连接
DisconnectDB()
{
db2 connect reset>>deleteTable.log
echo "The DB has been disconnect!">>deleteTable.log
} #执行命令
run()
{
BeginDT=`date +%Y-%M-%d,%H:%m:%s`
echo "===================Begin${BeginDT}========================">>deleteTable.log
#1.连接数据库
connDB2
#2.删除数据
deleteTable
#3.断开数据库连接
DisconnectDB
EndDT=`date +%Y-%M-%d,%H:%m:%s`
echo "==================EndDT${EndDT}==========================">>deleteTable.log
}
run
执行脚本后:

【shell】定时删除DB2表数据的更多相关文章
- 工作随笔——mysql子查询删除原表数据
最近在开发的时候遇到一个mysql的子查询删除原表数据的问题.在网上也看了很多方法,基本也是然并卵(不是写的太乱就是效率太慢). 公司DBA给了一个很好的解决方案,让人耳目一新. DELETE fb. ...
- MYSQL中delete删除多表数据
MYSQL中delete删除多表数据 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 ...
- sqlserver快速删除整个表数据
--删除整个表数据 SET STATISTICS TIME ON; DECLARE @Timer DATETIME = GETDATE(); TRUNCATE TABLE LOG_DEBUG_ERRO ...
- MSSQL 删除数据库表数据
--删除数据库表数据 慎用 create PROCEDURE sp_DeleteAllData AS ) ) ) ) ) ) begin try begin tran -- 失效索引,触发器 open ...
- hibernate中表关系为多对多时,如何只删除中间表数据
先说问题:我遇到的问题是,在用户和用户组对象关系中他们是多对多关系.所以中间是成在一张中间表的.经理要求当逻辑删除对象数据时,必须删除中间表中的数据. hibernate是面向对象操作sql语句的,如 ...
- Python--增量循环删除MySQL表数据
需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中“指定时期前“的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQ ...
- 删除mssqlserver表数据,使id从0开始
********************************* 注意备份好数据! *************************** 1.删除表数据 delete 表名 2.执行 dbcc c ...
- MYSQL中delete删除多表数据与删除关联数据
在mysql中删除数据方法有很多种,最常用的是使用delete来删除记录,下面我来介绍delete删除单条记 录与删除多表关联数据的一些简单实例. 1.delete from t1 where 条件 ...
- oc:定时删除ES日志数据释放空间
修改方法: 1.直接编辑修改 查看当前logging-curator配置,了解当前定时删除大的策略. oc edit configmap/logging-curator 打开后,可以直接编辑保存. 2 ...
随机推荐
- [Android Pro] 开发一流Android SDK
cp from : https://blog.csdn.net/dd864140130/article/details/53558011 本篇文章已授权微信公众号 guolin_blog (郭霖)独家 ...
- Servlet 生命周期、工作原理(转)
原文链接:Servlet 生命周期.工作原理 Servlet 生命周期:Servlet 加载--->实例化--->服务--->销毁. init():在Servlet的生命周期中,仅执 ...
- UrlRewriter && IIS7
为了在动态网站获得更好的url体验,往往采用url重写技术. 比如:http://blog.xujif.com/?p=268 可以重写为 http://blog.xujif.com/archives/ ...
- 阿里jstorm和storm区别
转自:https://www.cnblogs.com/cn-leodream/p/6497277.html 看介绍文档貌似挺好:https://github.com/alibaba/jstorm ...
- Maximum Submatrix & Largest Rectangle
相关题型 问题一(最大和子矩阵) : 有一个 m x n 的矩阵,矩阵的元素可正可负.请找出该矩阵的一个子矩阵(方块),使得其所有元素之和在所有子矩阵中最大.(问题来源:http://acm.pku. ...
- js时间戳怎么转成日期格式
原文地址:http://www.sufeinet.com/thread-1500-1-1.html js时间戳怎么转成日期格式这个在主群里有朋友§☆釺哖蟲...o问js时间戳怎么转成日期格式 ,他的问 ...
- Android -- 系统和自定义Notification
Notification是一种让你的应用程序在不使用Activity的情况下警示用户,Notification是看不见的程序组件警示用户有需要注意的事件发生的最好途径. 作为UI部分,Notifica ...
- List 集合的交集
private void Test() { List<string> lsA = new List<string>(); lsA.Add("A"); lsA ...
- -webkit-margin-before
原文:https://www.cnblogs.com/guyw/p/4369653.html ----------------------------------------------- -webk ...
- 为Subline Text 3 添加支持ini文件语法高亮
转: http://lancelot.blog.51cto.com/393579/1783653 在Subline text 官网下载了Subline text 3 .不过发现没有对ini格式文件的语 ...