假设有数据库 shop
,原本表前缀为sp_
,现在要全部改成shop_
。第一时间想到的办法是批量替换数据库导出 .sql
中的 sp_
至 shop_
,但是这种方法并不安全,一旦数据库中有其他的 sp_ 字样也会被一同替换的。下面介绍两种 MySQL 批量修改表前缀的方法。
方法 A 是采用命令的方式批量修改 MySQL 表前缀
- 生成替换命令
- 批量替换
SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO shop_', substring(table_name, 4),';') FROM information_schema.tables where table_schema='shop' and table_name LIKE 'sp_%';
- 4:表示从
sp_
后面字符开始,这个数值要根据要替换的前缀长度改变,substring 函数是从 1 开始的; table_schema
:指定数据库名称;
上面的命令执行完成后,会生成替换表名的命令,如:
ALTER TABLE sp_users RENAME TO shop_users; ALTER TABLE sp_orders RENAME TO shop_orders; ALTER TABLE sp_comments RENAME TO shop_comments;
批量执行上面的语句,就完成了批量修改表前缀。
方法 B 是通过 phpMyAdmin 批量修改 MySQL 表前缀
- 选中要修改表前缀的数据库
- 点击“结构”标签
- 勾选下方的“全选”
- 在“选中项”下拉菜单中选择“修改表前缀”
- 填写当前的表前缀以及要修改为的表前缀
- 点击提交即可。