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的代码实例相关推荐

  1. SQL Server 删除重复记录,只保留一条记录

    原文地址:http://blog.csdn.net/eriato/article/details/17417303 有张表格之前没有设计关键字段的唯一约束,导致有时候执行插入操作时不小心执行了多次就出 ...

  2. ArcGIS删除地图投影坐标,只保留地理坐标

    今天突发奇想,在ArcGIS中进行投影转换很容易,那么如何删除投影坐标,只保留地理坐标呢? 一开始想着从投影文件(.prj)入手,删除其投影信息,结构不尽如人意. 如果从定义地理坐标(Define P ...

  3. mysql删除重复记录并且只保留一条

    准备的测试表结构及数据 插入的数据中A,B,E存在重复数据,C没有重复记录 CREATE TABLE `tab` (   `id` int(11) NOT NULL AUTO_INCREMENT,   ...

  4. mysql删除重复数据只保留一条_mysql查找删除重复数据并只保留一条实例详解

    有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 ...

  5. php去除重复的数据保留一条,mysql查找删除重复数据并只保留一条实例详解

    有这样一张表,表数据及结果如下: school_id school_name total_student test_takers 1239 Abraham Lincoln High School 55 ...

  6. mysql数据库删除重复的数据只保留一条

    问题引入 假设一个场景,一张用户表,包含 3 个字段:id,identity_id,name. 现在身份证号 identity_id 和姓名 name 有很多重复的数据,需要删除多余数据只保留一条有效 ...

  7. python mysql批量更新_Python批量删除mysql中千万级大量数据的脚本分享

    场景描述 线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多.运维找过来,磁盘占了200G,最后问了运营,可以只保留最近3天的,前面的数据,只 ...

  8. MySQL批量删除所有重复数据只保留一条

    -- 1.创建数据库及t_user表 CREATE DATABASE IF NOT EXISTS `test` DEFAULT CHARACTER SET utf8;USE `test`;DROP T ...

  9. 面试:如何实现 MySQL 删除重复记录并且只保留一条

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | blog.csdn.net/n950814ab ...

最新文章

  1. Warning message:In a + b : longer object length is not a multiple of shorter object length
  2. 微信公众平台OAuth2.0授权
  3. 什么是 dolby AC-3
  4. php new对象 调用函数,关于JS中new调用函数的原理介绍
  5. datetimepicker控件怎么改变hover颜色_VBA入门课程,ActiveX控件系列知识,复合框的属性与常见VBA代码...
  6. mysql索引 物理文件_MySQL架构和MySQL索引
  7. java_codereview随笔
  8. SetFormFullScreen()窗体全屏显示
  9. 八、操作系统——基本分页存储管理的基本概念(详解)
  10. WPF中路由事件的传播
  11. spark算子的分类
  12. UnityShader例子:边缘检测
  13. mysql56数据库的创建_如何在Mysql下用命令创建数据库用户方法
  14. 搭载Apple芯片的Mac如何使用macOS恢复?
  15. java 进程和线程
  16. (5)剑指Offer之栈变队列和栈的压入、弹出序列
  17. Java生鲜电商平台-提现模块的设计与架构
  18. Golang 实现文件内容差异比较
  19. CSDN新手机号绑定不成功,提示已存在账号,CSDN换绑手机号的相关问题
  20. 科学计算机是计算机最基本的应用,计算机基础试题3-大学教育计算机科学与技术类计算机及应用试卷与试题.pdf...

热门文章

  1. 【Java】5 个刁钻的 String 面试题
  2. 20-10-032-安装-KyLin-2.6.1-单机版安装(MAC官网下载)
  3. 【Kafka】Consumer group 'console-consumer-28367' has no active members.
  4. 大数据面试-04-大数据工程师面试题
  5. bottle mysql_bottle框架学习(八)之Mysql数据库的操作
  6. mysql 开发包 安装_mysql的zip包的安装方法
  7. Java多线程学习三十七:volatile 的作用是什么?与 synchronized 有什么异同
  8. Matlab求高斯脉冲函数
  9. .netframewor划时代的系统:纪念Vista发布5周年
  10. 2019.7.17东湖大数据页面二