执行步骤

  1.用concat批量生成修改表名的语句

SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO ',
substring(table_name,1,locate('_postfix',table_name)),'_new_postfix',';' )
FROM information_schema.tables Where table_name LIKE '%_postfix';

  2.将生成的语句执行一遍即可完成修改

——————————————————————————————————————

MySQL函数解释:

  1.substring(str,index,num)        从指定字符串(str) 截取指定的子串(从index开始截取num个字符)。

  示例:

select substring('class_name',2,5) ;

  执行结果为 ‘lass_’

  2.locate(cstr,str[,position])    查找子字符串(cstr)在字符串(str)中的坐标,可选参数position意为查找的起始位置

  示例:

SELECT locate('s','students_name')
SELECT locate('s','students_name',5)

  第1条语句执行结果为:1

  第2条语句执行结果为:8

 python脚本批量修改表名

工作中的测试环境每天要做初始化工作,需将部分表的名称由昨天改成当天,故将修改表名的工作写成了脚本。

因表头已知且一般不会改变,故直接定义了表头列表inittable_prefix,而没有使用上述SQL方法(substring)

import MySQLdb
import datetime
import traceback today = datetime.date.today().strftime('%Y%m%d')
yesterday = (datetime.date.today() - datetime.timedelta(days=1)).strftime('%Y%m%d') inittable_prefix = ['exam_table1_','exam_table2_','exam_table3_',
'exam_table4_','exam_table5_','exam_table6_'] today_list = [i+today for i in inittable_prefix]
lastday_list = [i+yesterday for i in inittable_prefix]
sqllit = ['ALTER TABLE %s RENAME TO %s' % (lastday_list[i],today_list[i]) for i in range(len(inittable_prefix))] class mymysql(object):
def __init__(self):
self.conn = MySQLdb.connect(
host = '127.0.0.1',
port = 3306,
user = 'root',
passwd = 'root',
db = 'xt') def renameTable(self,sql_list):
for sql in sql_list:
cur = self.conn.cursor()
try:
cur.execute(sql)
self.conn.commit()
except:
self.conn.rollback()
traceback.print_exc()
finally:
cur.close()
def closeConn(self):
self.conn.close() if __name__ =='__main__':
co = mymysql()
co.renameTable(sqllit)
co.closeConn()

MySQL批量修改相同后缀表名的更多相关文章

  1. mysql 批量修改 表字段/表/数据库 字符集和排序规则

    今天接到一个任务是需要把数据库的字符编码全部修改一下,写了以下修正用的SQL,修正顺序是   表字段 > 表 > 数据库. 表字段修复: #改变字段数据 SELECT TABLE_SCHE ...

  2. MYSQL批量修改表前缀与表名sql语句

    修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', ta ...

  3. ref:ubuntu下如何批量修改文件后缀名

    ref:https://blog.csdn.net/whuslei/article/details/6724900 ubuntu下如何批量修改文件后缀名 正确的方法是: 在命令行中输入   renam ...

  4. Win10怎么批量修改文件后缀名?

    Win10怎么批量修改文件后缀名?一般我们都是右击重命名,但是,如果要改的文件很多的话,这样做事不行的,该怎么批量修改后缀名呢?下面我们一起来看看两种解决办法 通常我们修改文件后缀名都是右击>& ...

  5. 如何批量修改文件后缀名,python来帮你

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  6. MySQL根据表前缀批量修改、删除表

    注意:请先调试好,以及做好备份,再执行操作. 批量修改表 批量给前缀为 xushanxiang_content_ 的表增加一个 username 的字段: SELECT CONCAT('ALTER T ...

  7. 批量修改文件名后缀,例如:html修改成HTML

    批量修改文件名后缀,例html修改成HTML 把文件后缀名html全部修改成HTML: 例:aa.html aa.HTML #!/bin/bash for file in `ls`;do mv $fi ...

  8. MySQL在Linux下的表名如何不区分大小写

    MySQL在Linux下的表名如何不区分大小写   今天测试的时候,遇到一些问题,明明看到数据,就是查不出来;后来发现,在linux下, mysql的表名区分大小写,而在windows下是不区分,从w ...

  9. [转]mysql在windows下支持表名大小写,lower_case_table_names

    windows下mysql默认是不支表名大小写的,也就是表名大小写不敏感.用phpmyadmin创建的驼峰式表名,全部被强制成小写.mysql表名大小写敏感的参数: lower_case_table_ ...

随机推荐

  1. [LeetCode] 325. Maximum Size Subarray Sum Equals k 和等于k的最长子数组

    Given an array nums and a target value k, find the maximum length of a subarray that sums to k. If t ...

  2. 算法练习之合并两个有序链表, 删除排序数组中的重复项,移除元素,实现strStr(),搜索插入位置,无重复字符的最长子串

    最近在学习java,但是对于数据操作那部分还是不熟悉 因此决定找几个简单的算法写,用php和java分别实现 1.合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两 ...

  3. TCP/IP协议的工作流程

    1.在源主机上,应用层将一串应用数据流向下传输给传输层 2.传输层将应用数据截流成分组,并加上TCP报头形成TCP段,向下递交给网络层 3.在网络层给TCP段加上包括源主机,目的主机IP地址的IP报头 ...

  4. [转帖]Introduction to Linux monitoring and alerting

    Introduction to Linux monitoring and alerting https://www.redhat.com/sysadmin/linux-monitoring-and-a ...

  5. python学习-38迭代器和生成器

    迭代器和生成器 ---- 迭代器协议和for循环工作机制 1.迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个Stoplteration异常,以终止迭代(只能往 ...

  6. Go语言( 函数)

    函数是组织好的.可重复使用的.用于执行指定任务的代码块.本文介绍了Go语言中函数的相关内容. 函数 Go语言中支持函数.匿名函数和闭包,并且函数在Go语言中属于“一等公民”. 函数定义 Go语言中定义 ...

  7. Java对象深拷贝浅拷贝总结

    目录 深拷贝 1. 手动new 2. clone方法 3. java自带序列化 4. json序列化 性能测试 深拷贝总结 浅拷贝 1. spring BeanUtils(Apache BeanUti ...

  8. 单实例dg软件从10.2.0.4版本安装至10.2.0.5.12

    DG环境搭建需求,因此安装与主库相同的软件版本 1.主库软件版本10.2.0.5.12 2dg环境提供的是全新的10.2.0.4.0 3.安装步骤,安装10.2.0.5 静默安装 psu安装10.2. ...

  9. springMvc之常用注解介绍

    @requestbody和@requestparam的用法  获取请求参数的方法 get请求: 直接获取request    如: public String getHtml(HttpServletR ...

  10. Delphi开发的数据库程序在C:\PDOXUSRS.NET生成文件,拒绝访问及读写权限

    Delphi开发的数据库程序在C:\PDOXUSRS.NET生成文件,拒绝访问及读写权限, "无法打开 PARADOX.NET.这个文件可以随便删除的,下次会自动产生. Permission ...