• 批量修改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 ";
    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、 在浏览器输入访问您的网址.数据库表的前缀就可以修改成功了。

  • 相关阅读:
    java通过LinkedList实现堆栈和队列数据结构
    华硕笔记本无法调节屏幕亮度
    Java8新特性
    GitLab使用记录
    Java IO流关闭问题之原理简析
    gradle build docker image
    mysql安装及使用
    前端div层级控制
    Could not get dialect instance.
    Starting a Gradle Daemon, 5 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details FAILURE: Build failed with an exception. * What went wrong: Could not dispatch
  • 原文地址:https://www.cnblogs.com/tangchuanyang/p/3516997.html
Copyright © 2020-2023  润新知