在开发过程中我们会遇到要批量修改表前缀,下面介绍3种常用的方法,本人亲测过,留个记号。
数据无价贵,操作需谨慎,操作前备份。
第一种,使用”帝国备份王“工具
官方下载:http://www.phome.net/ebak2010/
这个最简单,就不多说了,官方有说明文档。
第二种,PHP批量修复表前缀
把下面的PHP代码保存为一个php文件 如:prefix.php,填写你的信息,放到当前网站目录下,浏览http://你的域名/prefix.php
<?php
$database = 'ecshop';//数据库
$prefix = 'ecs';//新表前缀,不用填下划线“_”
mysql_connect('localhost','root','123123') or die('cannot connect');//数据库连接
mysql_select_db($database);//选择数据库
$query = mysql_query('show tables');//读表
while($row = mysql_fetch_array($query)){
$tableName = $row['Tables_in_'.$database];//获取旧表名
$string = explode('_',$tableName);//用下划线“_”拆分取得旧表名的前缀
if($string[0]!=$prefix){//判断旧表前缀不等于新表前缀
$string[0] = $prefix;//旧表前缀变成新表前缀,即 旧表变成新表
$newTableName = implode('_', $string);//用下划线“_”组装成新表
$sql = 'rename table '.$tableName.' TO '.$newTableName;//sql语句:旧表重命名为新表
if(mysql_query($sql))//执行过程提示结果
{
echo 'rename table '.$tableName.' TO '.$newTableName.'<span style="color:red;"> OK </span><br />';
}
}
}
?>
打开prefix.php后的效果:
第三种,phpmyadmin 里面打开你要批量修改前缀的数据库,再点击SQL操作,输入如下语句:
SELECT CONCAT( 'ALTER TABLE ', table_name, 'RENAME TO ', table_name, ';' )
FROM information_schema.tables
WHERE table_name LIKE 'ecs_%'
LIKE 'ecs_%' 里面的ecs_就是你当前的表前缀。执行后得到如下多行语句:
显示全部,完整内容,执行。然后把所有ALTER TABLE ... 语句复制到 notepad++之类的可批量修改工具上
ALTER TABLE ecs_account_logRENAME TO ecs_account_log;
ALTER TABLE ecs_adRENAME TO ecs_ad;
ALTER TABLE ecs_ad_customRENAME TO ecs_ad_custom;
ALTER TABLE ecs_ad_positionRENAME TO ecs_ad_position;
....
...
在编辑器中将“RENAME TO ecs_”批量改为想设置的表前缀,再把修改好的所有SQL复制回SQL工具上,执行此SQL语句即可批量修改表名。
第三种麻烦一点,推荐第一和第二种方法。
End!
DedeCMS织梦工场QQ群
群号(23871657)
只适用于讨论dedecms二次开发相关话题,其他闲聊、广告、斗图、捣乱请自重自觉,谢谢合作!
不忘初心 、方得始终
DedeCMS织梦工场 - 致力于把最实用的DedeCms二次开发教程,DedeCms二次开发视频,DedeCms二次开发实例经验,分享给最需要的站长,希望每一位来访的站长都能有所收获!
如果您认为本网站的内容质量不错或者读后成功解决你心中的难题,觉得收获很大,那么不妨小额赞助一下,让我们有动力继续写出高质量的教程与更棒的程序教程。打赏记录
赞助方式
支付宝手机客户端扫描上面的二维码进行赞助
微信手机客户端扫描上面的二维码进行赞助