该脚本首先连接到 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.")
正文完