因为网站搬迁,数据转换需要用到批量修改MySQL中表名前缀,查找了相应的方法,以做记录。
MySQL中,单独更改某个表名或者表前缀的语句是:
ALTER TABLE `old_xxxxx` RENAME TO `new_xxxxx`;
这样就完成了对某个表修改前缀的方法,那么如果要批量修改表名,就需要执行多次上述语句。解决该问题的思路是:利用SQL获取需要修改的表名,然后使用拼接字符串函数,拼接出修改所有表的每一条SQL语句,将得到的这些语句复制出来后,再执行,即可完成批量改表名的工作
首先执行以下语句生成
SELECT CONCAT('ALTER TABLE ',table_name,' RENAME TO new',substring(table_name,4),';')
FROM in information_schema.tables
WHERE table_name LIKE 'old_%'
这样就会得到类似以下的结果
ALTER TABLE old_xxxxx RENAME TO new_xxxxx;
ALTER TABLE old_yyyyy RENAME TO new_yyyyy;
ALTER TABLE old_zzzzz RENAME TO new_zzzzz;
此时复制这些结果,在MySQL进行执行,即可完成批量改表名
还不快抢沙发