Python 实现修改MySQL数据表前缀

52次阅读
没有评论

该脚本首先连接到 MySQL 数据库,然后查询所有以旧前缀开头的表名。对于每个表,它构建一个新的表名(通过替换前缀)和一个 RENAME TABLE SQL 语句。然后,它执行这个 SQL 语句来重命名表,并提交事务以确保更改被保存。最后,它关闭数据库连接并打印一条成功消息。

import pymysql  
  
# 执行前先备份数据库 安装pip install pymysql


# MySQL连接信息  
HOST = 'localhost'  
USER = ''  
PASSWORD = ''  
DB = ''  # 库
OLD_PREFIX = 'lodxx_'  # 旧前缀
NEW_PREFIX = 'newxx_'  # 新前缀
  
# 连接到MySQL数据库  
connection = pymysql.connect(host=HOST, user=USER, password=PASSWORD, db=DB)  
try:  
    with connection.cursor() as cursor:  
        # 查询所有以OLD_PREFIX为前缀的表名  
        cursor.execute(f"SHOW TABLES LIKE '{OLD_PREFIX}%';")  
        tables = cursor.fetchall()  
          
        # 遍历表名并构建RENAME TABLE语句  
        for table in tables:  
            old_table_name = table[0]  
            new_table_name = f"{NEW_PREFIX}{old_table_name[len(OLD_PREFIX):]}"  
            rename_sql = f"RENAME TABLE `{DB}`.`{old_table_name}` TO `{DB}`.`{new_table_name}`;"  
            print(rename_sql)  # 打印SQL语句以供检查(或记录到日志文件中)  
              
            # 执行RENAME TABLE语句  
            cursor.execute(rename_sql)  
          
        # 提交事务  
        connection.commit()  
  
finally:  
    connection.close()  # 确保关闭连接  
  
print("Table renames completed successfully.")
正文完
 0
评论(没有评论)