mysql 修改前缀_批量修改mysql的表前缀

如何批量修改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 '

';

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."
".已经修改为:.$new_prefix."
";

72    }

73    else

74    { print 您的数据库表的前缀.$old_prefix.输入错误。请检查相关的数据库表的前缀;

75    if ( mysql_free_result($result) ) {

76    return true;

77    }

78    }

79    ?>

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值