在数据库设计中,对于某个特定的项目,一般对其所有的数据表指定相同的表前缀,如WordPress的数据表都是以wp_开头的,Discuz的数据表都是以dz_开头的。这样不但便于区分,更重要的作用在于可以避免将多个项目部署到同一个数据库时可能出现的表同名冲突。

那么,有如下这种情况时:

用户A和用户B都使用wordpress程序,现在他们想将程序放在一起,但是主机上只分配了一个数据库给他们,意味着他们的数据需要存放在一个数据库,问题是他们先前已经创建好了wordpress的数据库,并且使用了相同的表前缀,都使用了wp_,那么,怎样批量修改表前缀呢。

通过PHP脚本显然可以做到,在MySQL中修改表名的语句为

RENAME TABLE oldname

TO newname

这里,我尝试采用纯SQL语句来实现,捣鼓了一阵子,于是有了下面这个存储过程:

-- @author xueyu

-- @desc modify the prefix of table name in db

-- @example

--

-- use DBNAME;

-- show tables;

-- source ~/change_prefix.sql;

--

-- call change_prefix('old_', 'new_', 'DBNAME');

--

-- show tables;

-- drop procedure if exists change_prefix;

--

delimiter //

DROP procedure IF EXISTS change_prefix //

CREATE procedure change_prefix(IN oldpre VARCHAR(200), IN newpre

VARCHAR(200), IN dbname VARCHAR(200))

begin

declare done INT DEFAULT 0;

declare oldname VARCHAR(200);

declare cur CURSOR FOR SELECT table_name FROM

information_schema.TABLES WHERE table_schema= dbname AND table_name

LIKE concat(oldpre,'%');

declare continue handler FOR NOT found SET done

= 1;

open cur;

repeat

fetch cur

INTO oldname;

IF NOT done

then

SET @newname = concat(newpre, trim(LEADING oldpre FROM

oldname));

SET @sql = concat('rename table ',oldname,' to ',@newname);

prepare tmpstmt FROM @sql;

execute tmpstmt;

deallocate prepare tmpstmt;

end

IF;

until done end repeat;

close cur;

end //

delimiter ;

使用方法很简单,直接导入这个脚本,然后运行

call change_prefix('old_', 'new_', 'DB_NAME');

即可,注意,脚本有删除change_prefix这句,如果你有同样命名的存储过程,注意去掉。用完之后,可以将这个存储过程删除掉。

我们可以批量给数据库里的所有表加上同样的前缀,第一个参数留即可

call change_prefix('', 'added_', 'DB_NAME');

同理,第二个参数留空可以去掉指定的表前缀。

mysql prefix_批量修改MySQL表前缀相关推荐

  1. php 批量修改表格数据,PHP批量修改数据库表前缀教程+代码

    有时候需要批量修改数据库表前缀,最简单的方法就是一个表一个表的手动修改,但是非常浪费时间.这里为大家分享一段自用的利用PHP批量修改数据库表前缀的方法,亲测可用,下面上代码. PHP修改表前缀代码&l ...

  2. 【MySQL】 批量修改数据表和数据表中所有字段的字符集

    查询某个数据库所有表名的语句: # 更改 DATABASE_NAME SELECT TABLE_NAME from information_schema.`TABLES` WHERE TABLE_SC ...

  3. 织梦数据库改mysql前缀_织梦快速批量修改MYSQL数据库表前缀与表名实例操作

    这篇文章主要为大家详细介绍了织梦快速批量修改MYSQL数据库表前缀与表名实例操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 我们在安装织梦系统的时候,有一次 ...

  4. phpMyAdmin批量修改Mysql数据表前缀的方法

    多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分.而如何批量修改已有数据库的前缀名 呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介 ...

  5. 修改mysql表前缀_使用phpMyAdmin批量修改Mysql数据表前缀的方法

    多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分.而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介绍 ...

  6. mysql之批量修改数据

    文章目录 1. 对于某个字段,批量修改数据的方式 2. jdbc中批量插入数据的方式 2.1 jdbc中标准插入多条数据的方式 2.2 jdbc中批量插入多条数据的方式 1. 对于某个字段,批量修改数 ...

  7. mysql:Windows修改MySQL数据库密码

    mysql:Windows修改MySQL数据库密码 用SET PASSWORD命令 用mysqladmin 用UPDATE直接编辑user表 忘记密码时 用SET PASSWORD命令 这是最后成功的 ...

  8. Excel酷炫技能,批量修改工作表名称,让你的工作事半功倍

    企事业单位部门众多,人员也众多.使用Microsoft Excel汇集资料任务繁重,收集到的Excel工作表资料名称也各不相同,如果不将其整理会对今后的工作造成不必要的麻烦.对Excel工作表名称单个 ...

  9. oracle添加表的索引,oracle批量添加指定表前缀的索引SQL语句

    oracle批量添加指定表前缀的索引SQL语句 需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 ##需要输入用户名,表空间,索引个数,表名前缀,过滤的表名后缀 declare --用户名 ...

  10. Excel如何批量修改工作表名称

    今天跟大家分享一下Excel如何批量修改工作表名称 1.下图工作簿中含有多个工作表,现在我们想要将工作表名称批量修改为1月-9月. 2.首先我们现在表格空白区域录入1月-9月 3.点击下图选项(Exc ...

最新文章

  1. 数据、算法岗的几点经验分享!
  2. c语言合法的数据类型关键字有哪些,C语言提供的合法的数据类型关键字是_________....
  3. Java EE WEB工程师培训-JDBC+Servlet+JSP整合开发之06.JDBC PreparedStatement
  4. 文治者必有武备不然长大了挨欺负_“有文事者必有武备,有武备者必有文事。”出自司马迁的《史记》。...
  5. 安卓ssr无网络连接_解决Android模拟器网络问题(使用了代理的情况下)
  6. python穷举法搬砖_python 穷举法 算24点(史上最简短代码)-阿里云开发者社区
  7. 编程的精髓:发现问题,解决问题
  8. 具有N个量子存储位的计算机,未来世界是科技的世界,未来的计算机也会有这几类...
  9. 《 Python树莓派编程》——2.7 总结
  10. Json.Net学习笔记(十二) 协议解析
  11. 在竞赛中不断成长--(广油最帅的崽)行走的皮卡丘
  12. 钉钉日志范文100篇_钉钉工作日记(模板一)
  13. [UE4] Spawn Emitter Attached 特效消失的问题的解决方法:ParticleSystem 必须附着在角色的 Mesh 上
  14. The Django Book-----第一章:介绍Django
  15. 数据结构_静态链表(C语言)
  16. 半导体芯片的基本结构
  17. Android端阿里云实人认证
  18. 固态硬盘寿命不长?!快来看看12个固态硬盘优化技巧
  19. (附源码)Django 主机硬件配置推荐系统 毕业设计 231155
  20. 基于Python的Excel读写操作--内容超详细,值得排排坐

热门文章

  1. ID3、C4.5、CART决策树算法解析(关键内容讲解)
  2. 【Python-numpy】输出array时array中间是省略号而没有输出全部内容
  3. 3371 【模板】单源最短路径(Dijsktra)
  4. 在Linux下面的某一个文件的查找命令
  5. Ubuntu16.04编译Android6.0/cm13.0教程及相关错误解决办法
  6. iOS直播点赞动画,iOS直播心型点赞动画
  7. 【linux系统学习笔记】Linux系统初识
  8. MFC字符串CString分割函数 简洁 C++
  9. python线性拟合、不确定性
  10. JS学习总结(13)——DOM