如何批量修改mysql的表前缀名称
教程中将涉及两种方法修改,一种是批量修改(使用php脚步完成)一种是精确修改(使用sql查询语句完成)。

方法一:使用sql语句修改mysql数据库表前缀名

首先我们想到的就是用sql查询语句来修改,这个方法也很方便,在运行 SQL 查询框中输入如下语名就可以了。

ALTER TABLE 原表名 RENAME TO 新表名;

如:

ALTER TABLE old_post RENAME TO new_post;

Sql查询语句有一个缺点,那就是一句SQL语句只能修改一张数据库的表名,如果你要精确修改某一张表,很好用。如果数据库表很多的话,比较麻烦。
但是我们可以通过一条语句一次性生成所有的sql语句:select concat('alter table ',table_name,' rename to ',table_name) from information_schema.tables where table_name like'dmsck_%';
生成语句如下:
alter table dmsck_acategory rename to dmsck_acategory;
 alter table dmsck_address rename to dmsck_address;
 alter table dmsck_article rename to dmsck_article;
 alter table dmsck_attrcategory rename to dmsck_attrcategory;
 alter table dmsck_attribute rename to dmsck_attribute;
 alter table dmsck_brand rename to dmsck_brand;
 alter table dmsck_cart rename to dmsck_cart;
 alter table dmsck_category_attr rename to dmsck_category_attr;
 alter table dmsck_category_goods rename to dmsck_category_goods;
 alter table dmsck_category_store rename to dmsck_category_store;
 alter table dmsck_collect rename to dmsck_collect;
 alter table dmsck_comment rename to dmsck_comment;
 alter table dmsck_coupon rename to dmsck_coupon;
 alter table dmsck_coupon_sn rename to dmsck_coupon_sn;
 alter table dmsck_enterprise rename to dmsck_enterprise;
 alter table dmsck_filmstrip rename to dmsck_filmstrip;
 alter table dmsck_friend rename to dmsck_friend;
 alter table dmsck_function rename to dmsck_function;
 alter table dmsck_gattribute_rule rename to dmsck_gattribute_rule;
 alter table dmsck_gcategory rename to dmsck_gcategory;
 alter table dmsck_goods rename to dmsck_goods;
 alter table dmsck_goods_attr rename to dmsck_goods_attr;
 alter table dmsck_goods_bak rename to dmsck_goods_bak;
 alter table dmsck_goods_down_log rename to dmsck_goods_down_log;
 alter table dmsck_goods_image rename to dmsck_goods_image;
 alter table dmsck_goods_old rename to dmsck_goods_old;
 alter table dmsck_goods_qa rename to dmsck_goods_qa;
 alter table dmsck_goods_spec rename to dmsck_goods_spec;
 alter table dmsck_goods_statistics rename to dmsck_goods_statistics;
 alter table dmsck_groupbuy rename to dmsck_groupbuy;
 alter table dmsck_groupbuy_log rename to dmsck_groupbuy_log;
 alter table dmsck_keyword rename to dmsck_keyword;
 alter table dmsck_mail_queue rename to dmsck_mail_queue;
 alter table dmsck_member rename to dmsck_member;
 alter table dmsck_message rename to dmsck_message;
 alter table dmsck_module rename to dmsck_module;
 然后将其复制到一个文本文件中,将要修改的前缀统一修改(稍稍麻烦),然后再复制到mysql中执行sql语句就ok了。

方法二:php脚本批量修改mysql数据库表前缀

1、将下面的代码复制到记事本,根据自己人情况修改好数据库信息。再上传您网站的根目录。您可以直接下载mysql数据库前缀名批量修改脚步:修改mysql数据库表前缀名。
1    <?php
2    //设置好相关信息
3    $dbserver='localhost';//连接的服务器一般为localhost
4    $dbname='y8n9nghmze_shop';//数据库名
5    $dbuser='root';//数据库用户名
6    $dbpassword='';//数据库密码
7    $old_prefix='ecs_';//数据库的前缀
8    $new_prefix='dmsck_';//数据库的前缀修改为
9    if (
10     !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) )
11    {
12    return false;
13    }
14    if (!mysql_connect($dbserver,
15     $dbuser, $dbpassword)) {
16    print 'Could not connect to mysql';
17    exit;
18    }
19    
20    //取得数据库内所有的表名
21    
22    $result =
23     mysql_list_tables($dbname);
24    
25    if (!$result) {
26    
27    print "DB Error, could not
28     list tables\n";
29    
30    print 'MySQL Error: ' .
31     mysql_error();
32    
33    exit;
34    
35    }
36    
37    //把表名存进$data
38    
39    while ($row =
40     mysql_fetch_row($result)) {
41    
42    $data[] = $row[0];
43    
44    }
45    //过滤要修改前缀的表名
46    foreach($data as $k => $v)
47    {
48    $preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i",
49     $v, $v1);
50    if($preg)
51    {
52    $tab_name[$k] =
53     $v1[2];
54    //$tab_name[$k]
55     = str_replace($old_prefix, '', $v);
56    }
57    }
58    if($preg)
59    {
60    //        echo '<pre>';
61    //        print_r($tab_name);
62    //        exit();
63    //批量重命名
64    foreach($tab_name as $k =>
65     $v)
66    {
67    $sql = 'RENAME TABLE
68     `'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`';
69    mysql_query($sql);
70    }
71    print  数据表前缀:.$old_prefix."<br>".已经修改为:.$new_prefix."<br>";
72    }
73    else
74    { print 您的数据库表的前缀.$old_prefix.输入错误。请检查相关的数据库表的前缀;
75    if ( mysql_free_result($result) ) {
76    return true;
77    }
78    }
79    ?>

2、 在浏览器输入访问您的网址.数据库表的前缀就可以修改成功了。

批量修改mysql的表前缀的更多相关文章

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

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

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

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

  3. 批量修改Mysql数据库表Innodb为MyISAN

    mysql -uroot -e "SELECT concat('ALTER TABLE ', TABLE_NAME,' ENGINE=MYISAM;') FROM Information_s ...

  4. MySQL根据表前缀批量修改、删除表

    注意:请先调试好,以及做好备份,再执行操作. 批量修改表 批量给前缀为 xushanxiang_content_ 的表增加一个 username 的字段: SELECT CONCAT('ALTER T ...

  5. 在线批量修改mysql中表结构

    在线批量修改mysql中表结构 1.获取要修改的表的表名称登录mysql库,查询出所有表 show tables; 将需要修改表结构的表名称存放到b.txt文件中2.执行修改修改表引擎为InnoDB ...

  6. ABP框架源码学习之修改默认数据库表前缀或表名称

    ABP框架源码学习之修改默认数据库表前缀或表名称 1,源码 namespace Abp.Zero.EntityFramework { /// <summary> /// Extension ...

  7. MySQL批量修改相同后缀表名

    执行步骤 1.用concat批量生成修改表名的语句 SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO ', ,locate('_postfi ...

  8. 修改MYSQL数据库表的字符集

    MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令.包括查看 MySQL 数据库服务器字符集.查看 MySQL 数据库字符集,以及数据表和字段的 ...

  9. shell批量修改mysql用户密码

    需求 现在有这么一个需求, 需要大批量修改用户的密码, 需要注意的规则是: 必须添加的字符: *$#sjdKw% 用户名的第一位+*$#sjdKw%+用户名的最后一位,比如用户名chenglee,密码 ...

随机推荐

  1. vue实践---vue结合 promise 封装原生ajax

    有时候不想使用axios这样的外部依赖,想自己封装ajax,这里有两种方法 方法一,在单个页面内使用 封装的代码如下: beforeCreate () { this.$http = (() => ...

  2. [Java开发之路](8)输入流和输出流

    1. Java流的分类 按流向分: 输入流: 能够从当中读入一个字节序列的对象称作输入流. 输出流: 能够向当中写入一个字节序列的对象称作输出流. 这些字节序列的来源地和目的地能够是文件,并且通常都是 ...

  3. 如何基于EasyDSS体系的全套SDK完成各种场景下的视频应用需求

    需求背景 回顾EasyDSS的发展过程,基本上保持的是先局部后系统.先组件后平台的发展方式,一步一步夯实每一个细节功能点,从最基础.最兼容的音视频数据的拉流获取,到高效的.全兼容的数据推流,再到流媒体 ...

  4. 九度OJ 1193:矩阵转置 (矩阵计算)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1673 解决:1132 题目描述: 输入一个N*N的矩阵,将其转置后输出.要求:不得使用任何数组(就地逆置). 输入: 输入的第一行包括一个 ...

  5. 【python】-- try except (异常捕获)、断言

    try except (异常捕获) 当程序出错了,但是我们又不想让用户看到这个错误,而且我在写程序的时候已经预料到了它可以出现这样的错误,出现这样的错误代表着什么,我们可以提前捕获这些个错误 1.异常 ...

  6. ShowModal 代码分析

    下面为Delphi中,方法TCustomForm.ShowModal的代码,通过分析以下代码,可以了解ShowModal到底是怎么一回事! 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  7. centos 下安装pdo_pgsql 只需一个命令_______yum install php56w-pgsql

    [root@localhost ~]# yum install php56w-pgsql Loaded plugins: fastestmirror, langpacks Repository pgd ...

  8. linux shell 中数组使用方法介绍

    linux shell在编程方面比windows 批处理强大太多,不管是在循环.运算.已经数据类型方面都是不能比較的. 以下是个人在使用时候,对它在数组方面一些操作进行的总结. 1.数组定义 [che ...

  9. ubuntu下使用free命令查看内存实际占用(待补充)

    free不带选项运行会显示一个以kb为单位的默认输出 free -h人类能看懂的方式显示 free -m MB的方式显示 free -g GB方式显示 used=total-free即total=us ...

  10. python spark

    http://blog.jobbole.com/86232/ 1. 安装lib 材料: spark : http://spark.apache.org/downloads.html hadoop :  ...