与
ESC
输入关键词搜索文章

mysql批量删除相同前缀表名的数据表

全文约 391 字预计阅读 2 分钟
使用php代码: <?php mysql_connect('','',''); mysql_select_db(''); $rs=mysql_query('show tables'); while($arr=mysql_fetch_array($rs)){     $TF=strpos($arr[0],'class_');     if($TF===0){         $FT=mysql_query("drop table $arr[0]");         if($FT){             echo "$arr[0] 删除成功!<br>";             }         }     } ?> 或 <?php $hostname ='localhost'; $userid = 'username'; $password = 'password'; $dbname = 'dbname'; $connect = mysql_connect($hostname,$userid,$password); mysql_select_db($dbname); $result = mysql_query("show table status from $dbname",$connect); while($data=mysql_fetch_array($result)) { mysql_query("drop table $data[Name]"); } ?> 通过phpmyadmin批量删除 一、先说一下简单的批量删除特定前缀(其实有特定字符串的都可以)的表: 1、在phpmyadmin中运行如下sql命令: Select CONCAT( ‘drop table ‘, table_name, ‘;’ ) FROM information_schema.tables Where table_name LIKE ‘cdb_%’; 说明:information_schema是系统数据库,这个数据库里有一个叫table的表,表里的内容是当前登录用户权限内可以看见的所有数据库的表名,一个表名占一行。CONCAT是连接字符串。上面语句的作用是生成一批删除指定前缀(cdb_)的表的sql语句。类似: drop table cdb_aaa; drop table cdb_bbb; 2、复制上面的内容,进入需要删除表的数据库,粘帖到sql运行框内,执行。 注意,在产生批量删除的sql语句的时候,可能有些字符显示不下(表名太长)。点击该页面的“选项”,里面勾选“完整文字”即可。 二、批量修改表名 1、在phpmyadmin中运行如下sql命令: Select CONCAT( ‘ALTER TABLE ‘, table_name, ‘ RENAME TO ‘, table_name,‘;’ ) FROM information_schema.tables Where table_name LIKE ‘cdb_%’; 得到结果: ALTER TABLE cdb_aaa RENAME TO cdb_aaa; ALTER TABLE cdb_bbb RENAME TO cdb_bbb; 2、复制上面的结果到记事本,寻找RENAME TO cdb批量替换成RENAME TO pre(将cdb前缀改成pre前缀) 3、再复制记事本的内容,粘帖到phpmyadmin的sql运行框内,执行。 ps:上面的方法说方便也不是太方便,如果要改的表少的话还是手工改快一点。
mysql批量删除相同前缀表名的数据表
分享

发表评论

评论 0 条

暂无评论,来说点什么吧。