批量删除table,只保留最近几天的table

2024-03-03 03:38

本文主要是介绍批量删除table,只保留最近几天的table,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#!/usr/bin/python3
"""
批量删除table,只保留最近几天的table
"""
import  pymysql
import  redef conn_(host='',usr='',passwd='',db='',port=3306,):conn = pymysql.connect(host, usr, passwd, db, port,charset='utf8')return  conndef 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_formlist_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)

这篇关于批量删除table,只保留最近几天的table的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/768334

相关文章

MySQL CTE (Common Table Expressions)示例全解析

《MySQLCTE(CommonTableExpressions)示例全解析》MySQL8.0引入CTE,支持递归查询,可创建临时命名结果集,提升复杂查询的可读性与维护性,适用于层次结构数据处... 目录基本语法CTE 主要特点非递归 CTE简单 CTE 示例多 CTE 示例递归 CTE基本递归 CTE 结

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

MySQL逻辑删除与唯一索引冲突解决方案

《MySQL逻辑删除与唯一索引冲突解决方案》本文探讨MySQL逻辑删除与唯一索引冲突问题,提出四种解决方案:复合索引+时间戳、修改唯一字段、历史表、业务层校验,推荐方案1和方案3,适用于不同场景,感兴... 目录问题背景问题复现解决方案解决方案1.复合唯一索引 + 时间戳删除字段解决方案2:删除后修改唯一字

Python自动化批量重命名与整理文件系统

《Python自动化批量重命名与整理文件系统》这篇文章主要为大家详细介绍了如何使用Python实现一个强大的文件批量重命名与整理工具,帮助开发者自动化这一繁琐过程,有需要的小伙伴可以了解下... 目录简介环境准备项目功能概述代码详细解析1. 导入必要的库2. 配置参数设置3. 创建日志系统4. 安全文件名处

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定