MySQL批量修改相同后缀表名

执行步骤

  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()

原文地址:https://www.cnblogs.com/zeke-python-road/p/9140105.html

时间: 2024-07-30 12:31:24

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

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

修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO db_', substring(table_name, 4), ';' ) FROM information_schema. TABLES WHERE table_name LIKE 'ct%'; 批量复制一下到Notepad++中,只保留sql语句,再复

orcad元件属性批量修改及BOM表

本文适合于没有使用CIS的情况下,提高元件属性修改的效率和BOM生成. 第一步:编号 首先给元件编好号: 如果是沿用旧工程,用这个编号.如果是创建的新工程,使用第二项,强制从头开始编号.因为编号与PCB是相对应的,如果任意改动旧工程的编号会导致PCB出错,所以添加新元件后通常都是使用自增编号:而新工程不会存在这个问题,从头开始编号正规.美观. 第二步:导出属性表格 选择导出的路径,将文件导出来. 在文件上右键,选择用EXCEL打开: 它里面有好多默认属性,这个不用管,右键插入列,将自定义的属性加

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

windows下mysql默认是不支表名大小写的,也就是表名大小写不敏感.用phpmyadmin创建的驼峰式表名,全部被强制成小写.mysql表名大小写敏感的参数: lower_case_table_names. 在[mysqld]下加上lower_case_table_names=0即可. ### [mysqld] lower_case_table_names=0 ### win下默认值为1,就是说mysql会把表名主动lower. [转]mysql在windows下支持表名大小写,lower

mysql 批量修改字段方法

#mysql批量修改字段类型 #获得修改语句并存储到临时表 USE db; CREATE TEMPORARY TABLE XIUGAI SELECT CONCAT( 'alter table ',table_name,' MODIFY COLUMN ',column_name, ' 新类型 DEFAULT NULL;' ) AS col FROM INFORMATION_SCHEMA.columns a WHERE TABLE_SCHEMA = '数据库名称' AND data_type IN

mysql在windows下支持表名大小写,lower_case_table_names

原文:mysql在windows下支持表名大小写,lower_case_table_names windows下mysql默认是不支表名大小写的,也就是表名大小写不敏感. 用phpmyadmin创建的驼峰式表名,全部被强制成小写. mysql表名大小写敏感的参数:lower_case_table_names. Windows2012 下的C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 文件 在[mysqld]下加上lower_case_table_nam

批量修改文件名后缀

find . -name "*.cpp"|sed -e 's/\(.*\).cpp$/mv & \1.mm/e' 批量修改文件名后缀

批量修改文件后缀

我们会遇到批量修改文件后缀的情况,比如把 .html 的问件 修改成 .ejs 方法: 1.新建一个txt文件,里面写上 ren *.html *.ejs 2.保存,然后把 .txt 的后缀改成 .bat 3.双击这个 .bat 文件,当前目录下的 所有 html 文件就会变成 ejs 文件 修改前: 修改后: 原文地址:https://www.cnblogs.com/xbblogs/p/8366672.html

MySql 修改中文乱码/ 表名不区分大小写

系统是Ubuntu12.04 MySQL版本是5.5 如果是你是其他版本的MySQL,请绕行,我已经因为版本问题深受其害了 装MySQL的时候直接用的apt-get install mysql-server,然后用的时候有乱码出现,发现mysql-server的编码是latin,通过status查看 然后去网上找编码修改,又是一大堆,试了一大堆都不行,烦死.最多的是改/etc/my.cnf文件,但我服务器上没有这个文件,看了下,我的配置文件是这个/etc/mysql/my.cnf,然后照着别人说

windows批量修改文件后缀名

有时候需要批量修改一些文件的后缀名,下面介绍批量修改的方法. 1.在文件夹内新建一个.txt文本文档. 2.在文本文档内写:ren *    *.mp3 (意思是把没有后缀名的全部改成.mp3的格式, 同理ren *.gif    *.jpg则是把gif改成jpg,注意中间的空格是必须的). 3.把.txt文件后缀改成.bat,双击执行.成功拉. 原文地址:https://www.cnblogs.com/zeussbook/p/9152558.html