python批量删除_Python批量删除只保留最近几天table的代码实例
Python批量删除table,只保留最近几天的table
代码如下:
#!/usr/bin/python3
"""
批量删除table,只保留最近几天的table
"""
import pymysql
import re
def conn_(host='',usr='',passwd='',db='',port=3306,):
conn = pymysql.connect(host, usr, passwd, db, port,charset='utf8')
return conn
def del_table(conn_,table_pre='',table_suff='%Y%m%d',keep_count=3):
date_form = None
if table_suff == "%Y%m%d":
date_form = "_(\d{4}\d{1,2}\d{1,2})$"
date_len = 8
elif table_suff == "%Y-%m-%d":
date_form = "_(\d{4}-\d{1,2}-\d{1,2})$"
date_len = 10
elif table_suff == "%Y%m":
date_form = "_(\d{4}\d{1,2})$"
date_len = 6
elif table_suff == "%Y-%m":
date_form = "_(\d{4}-\d{1,2})$"
date_len = 7
else:
raise Exception("暂时不支持其他类型的时间后缀")
curs = conn_.cursor()
curs.execute('SHOW TABLES')
data = curs.fetchall()
table_ = r'%s'%table_pre+date_form
list_table = []
i = 0
for table in data:
mt = re.search(table_, table[0])
if mt:
if len(mt.groups()[0]) == date_len:
list_table.append((table[0], mt.groups()[0]))
i += 1
sorted(list_table, key=lambda date: date[1]) #按照表结构后缀时间升序排序
for j in range(i-keep_count):
sql = 'DROP TABLE if exists %s'%list_table[j][0]
curs.execute(sql)
curs.close()
conn_.close()
if __name__ == '__main__':
table_pre = "tree_product"
table_suff = "%Y%m%d"
# table_suff = "%Y-%m-%d"
# table_suff = "%Y%m"
# table_suff = "%Y-%m"
conn=conn_('10.0.0.11','root','sctele@root','sxf',port=3306)
del_table(conn,table_pre=table_pre,table_suff=table_suff,keep_count=1)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接
python批量删除_Python批量删除只保留最近几天table的代码实例相关推荐
- SQL Server 删除重复记录,只保留一条记录
原文地址:http://blog.csdn.net/eriato/article/details/17417303 有张表格之前没有设计关键字段的唯一约束,导致有时候执行插入操作时不小心执行了多次就出 ...
- ArcGIS删除地图投影坐标,只保留地理坐标
今天突发奇想,在ArcGIS中进行投影转换很容易,那么如何删除投影坐标,只保留地理坐标呢? 一开始想着从投影文件(.prj)入手,删除其投影信息,结构不尽如人意. 如果从定义地理坐标(Define P ...
- mysql删除重复记录并且只保留一条
准备的测试表结构及数据 插入的数据中A,B,E存在重复数据,C没有重复记录 CREATE TABLE `tab` ( `id` int(11) NOT NULL AUTO_INCREMENT, ...
- mysql删除重复数据只保留一条_mysql查找删除重复数据并只保留一条实例详解
有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 ...
- php去除重复的数据保留一条,mysql查找删除重复数据并只保留一条实例详解
有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 ...
- mysql数据库删除重复的数据只保留一条
问题引入 假设一个场景,一张用户表,包含 3 个字段:id,identity_id,name. 现在身份证号 identity_id 和姓名 name 有很多重复的数据,需要删除多余数据只保留一条有效 ...
- python mysql批量更新_Python批量删除mysql中千万级大量数据的脚本分享
场景描述 线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多.运维找过来,磁盘占了200G,最后问了运营,可以只保留最近3天的,前面的数据,只 ...
- MySQL批量删除所有重复数据只保留一条
-- 1.创建数据库及t_user表 CREATE DATABASE IF NOT EXISTS `test` DEFAULT CHARACTER SET utf8;USE `test`;DROP T ...
- 面试:如何实现 MySQL 删除重复记录并且只保留一条
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | blog.csdn.net/n950814ab ...
最新文章
- Warning message:In a + b : longer object length is not a multiple of shorter object length
- 微信公众平台OAuth2.0授权
- 什么是 dolby AC-3
- php new对象 调用函数,关于JS中new调用函数的原理介绍
- datetimepicker控件怎么改变hover颜色_VBA入门课程,ActiveX控件系列知识,复合框的属性与常见VBA代码...
- mysql索引 物理文件_MySQL架构和MySQL索引
- java_codereview随笔
- SetFormFullScreen()窗体全屏显示
- 八、操作系统——基本分页存储管理的基本概念(详解)
- WPF中路由事件的传播
- spark算子的分类
- UnityShader例子:边缘检测
- mysql56数据库的创建_如何在Mysql下用命令创建数据库用户方法
- 搭载Apple芯片的Mac如何使用macOS恢复?
- java 进程和线程
- (5)剑指Offer之栈变队列和栈的压入、弹出序列
- Java生鲜电商平台-提现模块的设计与架构
- Golang 实现文件内容差异比较
- CSDN新手机号绑定不成功,提示已存在账号,CSDN换绑手机号的相关问题
- 科学计算机是计算机最基本的应用,计算机基础试题3-大学教育计算机科学与技术类计算机及应用试卷与试题.pdf...
热门文章
- 【Java】5 个刁钻的 String 面试题
- 20-10-032-安装-KyLin-2.6.1-单机版安装(MAC官网下载)
- 【Kafka】Consumer group 'console-consumer-28367' has no active members.
- 大数据面试-04-大数据工程师面试题
- bottle mysql_bottle框架学习(八)之Mysql数据库的操作
- mysql 开发包 安装_mysql的zip包的安装方法
- Java多线程学习三十七:volatile 的作用是什么?与 synchronized 有什么异同
- Matlab求高斯脉冲函数
- .netframewor划时代的系统:纪念Vista发布5周年
- 2019.7.17东湖大数据页面二