修改表名

ALTER TABLE 原表名 RENAME TO 新表名;

一句SQL语句只能修改一张表

show tables;

1.

SELECT 
    CONCAT( 
        'ALTER TABLE ', 
        table_name, 
        ' RENAME TO db_', 
        substring(table_name, 4), 
        ';' 
    ) 
FROM 
    information_schema. TABLES 
WHERE 
    table_name LIKE 'ct%';

批量复制一下到Notepad++中,只保留sql语句,再复制到mysql中执行

2.php脚本批量修改mysql数据库表前缀

<?php 
//设置好相关信息 
$dbserver='localhost';//连接的服务器一般为localhost 
$dbname='corethink';//数据库名 
$dbuser='root';//数据库用户名 
$dbpassword='root';//数据库密码 
$old_prefix='ct_';//数据库的前缀 
$new_prefix='new_';//数据库的前缀修改为 
if ( !is_string($dbname) || !is_string($old_prefix)|| !is_string($new_prefix) ){ 
    return false; 
} 
    
if (!mysql_connect($dbserver, $dbuser, $dbpassword)) { 
     print 'Could not connect to mysql'; 
    exit; 
} 
//取得数据库内所有的表名 
$result = mysql_list_tables($dbname); 
if (!$result){ 
    print "DB Error, could not list tablesn"; 
    print 'MySQL Error: ' . mysql_error(); 
    exit; 
} 
//把表名存进$data 
 while ($row = mysql_fetch_row($result)) { 
    $data[] = $row[0]; 
} 
//过滤要修改前缀的表名 
foreach($data as $k => $v){ 
    $preg = preg_match("/^($old_prefix{1})([a-zA-Z0-9_-]+)/i", $v, $v1); 
    if($preg){ 
        $tab_name[$k] = $v1[2]; 
    } 
} 
if($preg){                 
     foreach($tab_name as $k => $v){ 
        $sql = 'RENAME TABLE `'.$old_prefix.$v.'` TO `'.$new_prefix.$v.'`'; 
        mysql_query($sql); 
    } 
    print  数据表前缀:.$old_prefix."<br>".已经修改为:.$new_prefix."<br>";    
}else{ print 您的数据库表的前缀.$old_prefix.输入错误。请检查相关的数据库表的前缀;   
    if ( mysql_free_result($result) ){ 
        return true; 
    } 
} 
?>

由于mysql_list_tables方法已经过时,运行以上程序时会给出方法过时的提示信息

Deprecated: Function mysql_list_tables() is deprecated in … on line xxx 

在php.ini中设置error_reporting,不显示方法过时提示信息 

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED 
 3.批量删除表
SELECT 
    CONCAT( 
        'drop table ', 
        table_name, 
        ';' 
    ) 
FROM 
    information_schema. TABLES 
WHERE 
    table_name LIKE 'uc_%';

执行查询,会自动生成出 drop table table_name这样的SQL语句

 


发布评论
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

使用navicat连接mysql要报10038的错误讲解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。