请教一个数据库表名的问题

2016-07-07 15:13 来源:www.chinab4c.com 作者:ecshop专家

现有一个表名前缀为esc_的数据库,里面有很多商品数据,我想把这个数据库迁移到另一台机器,并且把表前缀都改为klvchen_,请教大家,这个该如何操作,谢谢~~

回答:
如果是我,我会先导出sql,再用notepad将里面的ecs_全部替代成klvchen_

你说的那种方法也可以,你也可以看看这个如何批量修改mysql的表前缀名称教程:http://www.51php.com/mysql/7967.html

感谢www.taimo.cn和汤圆的方法。用notepad的方法我试过,用sqldump导入不行,但是source却可以成功导入。导入后排版方面有些问题,也不知道是不是没有全部修改完

01.$database = 'target';
02.mysql_connect('localhost','root','') or die('cannot connect');
03.mysql_select_db($database);
04.$query = mysql_query('show tables');
05.
06.$prefix = 'target';
07.while($row = mysql_fetch_array($query)){
08. $tableName = $row['Tables_in_'.$database];
09. $string = explode('_',$tableName);
10. if($string[0]!=$prefix){
11.$string[0] = $prefix;
12.$newTableName = implode('_', $string);
13.mysql_query('rename table '.$tableName.' TO '.$newTableName);
14. }
15.}



5楼方法也不错

其实最简单的方法,用PHPMYADMIN就可以批量替换表前缀,掌握技巧,很简单的
先执行下面SQL
  1. select concat('alter table ', table_name, ' rename to ', replace(table_name, 'ecs_', 'klvchen_' ),';') from information_schema.tables where table_name like 'ecs_%' limit 0,88
复制代码
得到一个执行结果,
修改PHPmyadmin的一些参数,让执行结果完全显示出来
复制这个执行结果到SQL框内,再次执行就成了

楼上厉害!

都是高手啊

看得好迷糊。。。

辛苦,学习了