使用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表数据的更多相关文章

  1. 工作随笔——mysql子查询删除原表数据

    最近在开发的时候遇到一个mysql的子查询删除原表数据的问题.在网上也看了很多方法,基本也是然并卵(不是写的太乱就是效率太慢). 公司DBA给了一个很好的解决方案,让人耳目一新. DELETE fb. ...

  2. MYSQL中delete删除多表数据

    MYSQL中delete删除多表数据 DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 1. delete from t1 where 条件 2.delete t1 ...

  3. sqlserver快速删除整个表数据

    --删除整个表数据 SET STATISTICS TIME ON; DECLARE @Timer DATETIME = GETDATE(); TRUNCATE TABLE LOG_DEBUG_ERRO ...

  4. MSSQL 删除数据库表数据

    --删除数据库表数据 慎用 create PROCEDURE sp_DeleteAllData AS ) ) ) ) ) ) begin try begin tran -- 失效索引,触发器 open ...

  5. hibernate中表关系为多对多时,如何只删除中间表数据

    先说问题:我遇到的问题是,在用户和用户组对象关系中他们是多对多关系.所以中间是成在一张中间表的.经理要求当逻辑删除对象数据时,必须删除中间表中的数据. hibernate是面向对象操作sql语句的,如 ...

  6. Python--增量循环删除MySQL表数据

    需求场景: 有一业务数据库,使用MySQL 5.5版本,每天会写入大量数据,需要不定期将多表中“指定时期前“的数据进行删除,在SQL SERVER中很容易实现,写几个WHILE循环就搞定,虽然MySQ ...

  7. 删除mssqlserver表数据,使id从0开始

    ********************************* 注意备份好数据! *************************** 1.删除表数据 delete 表名 2.执行 dbcc c ...

  8. MYSQL中delete删除多表数据与删除关联数据

    在mysql中删除数据方法有很多种,最常用的是使用delete来删除记录,下面我来介绍delete删除单条记 录与删除多表关联数据的一些简单实例. 1.delete from t1 where 条件 ...

  9. oc:定时删除ES日志数据释放空间

    修改方法: 1.直接编辑修改 查看当前logging-curator配置,了解当前定时删除大的策略. oc edit configmap/logging-curator 打开后,可以直接编辑保存. 2 ...

随机推荐

  1. [Android Security] APK自我保护 - 字符串处理

    cp : https://segmentfault.com/a/1190000005128037 在开发过程中字符串不可避免,但是这些字符串也可能是破解的关键点,比如服务器的地址和错误提示这些敏感的字 ...

  2. Log stash学习笔记(一)

    Logstash是一款开源的数据收集引擎,具备实时管道处理能力.简单来说,logstash作为数据源与数据存储分析工具之间的桥梁,结合 ElasticSearch以及Kibana,能够极大方便数据的处 ...

  3. 彻底理解Java的feature模式

    先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材.网上购买厨具比较方便,食材去超市买更放心. 实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材.所以,在主线程里面另起一个子线 ...

  4. UEFI与 Legacy BIOS两种启动模式详解

    (1). UEFI启动模式 与 legacy启动模式 legacy启动模式: 就是这么多年来PC一直在使用的启动方式(从MBR中加载启动程序),UEFI BIOS作为一种新的BIOS自然也应该兼容这种 ...

  5. [转]php curl经典最常用的5个例子

    转自: http://www.jb100.net/html/content-22-821-1.html php curl常用的5个例子 我用php ,curl主要是抓取数据,当然我们可以用其他的方法来 ...

  6. remote: GitLab: You are not allowed to push code to protected branches on this project.

    "C:\Program Files\Git\bin\git.exe" push --recurse-submodules=check --progress "origin ...

  7. AutoCppHeader AutoHeader 自动根据CPP 或C文件 来生成头文件。

    根据 cpp文件 生成相应的头文件 namespace 声明类定义声明 函数声明 extern 变量声明 选项--------------//[AutoHeader Public] //[AutoHe ...

  8. 初识网络进程通信<Heart.X.Raid>

    可以这样说:我们在网络上只做一件事,利用各种软件没完没了的相互通信. 对于单机系统而言,进程在系统中有自己唯一的进程号.但在网络环境下,各主机独立分配的进程号不能唯一标识该进程.例如,主机A赋于某进程 ...

  9. Go语言之进阶篇http服务器获取客户端的一些信息

    1.http服务器获取客户端的一些信息 示例: package main import ( "fmt" "net/http" ) //w, 给客户端回复数据 / ...

  10. 4个设计绝招教你减少PCB板电磁干扰

    电子设备的电子信号和处理器的频率不断提升,电子系统已是一个包含多种元器件和许多分系统的复杂设备.高密和高速会令系统的辐射加重,而低压和高灵敏度 会使系统的抗扰度降低. 因此,电磁干扰(EMI)实在是威 ...