假设有数据库 shop,原本表前缀为sp_,现在要全部改成shop_。第一时间想到的办法是批量替换数据库导出 .sql 中的 sp_shop_,但是这种方法并不安全,一旦数据库中有其他的 sp_ 字样也会被一同替换的。下面介绍两种 MySQL 批量修改表前缀的方法。

方法 A 是采用命令的方式批量修改 MySQL 表前缀

  1. 生成替换命令
  2. 批量替换
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 表前缀

  1. 选中要修改表前缀的数据库
  2. 点击“结构”标签
  3. 勾选下方的“全选”
  4. 在“选中项”下拉菜单中选择“修改表前缀”
  5. 填写当前的表前缀以及要修改为的表前缀
  6. 点击提交即可。
(adsbygoogle = window.adsbygoogle || []).push({});