抱歉,评论被关闭
MYSQL如何批量删除相同前缀表?
最近再操作一些数据库的表时候,一些冗余的数据表,需要删除,但是删除表比较多,但是他们都相同的前缀,那怎样一键删除所有的(批量删除)呢?
下面写了两种办法进行处理
一、命令批量删除(需要列出所有要删除的表)
drop table `apoyl_table1`,`apoyl_table2`,`table3`
二、用程序(PHP)写一个小工具(一键搞定)
<html><head><title>MYSQL批量删除相同前缀的表</title></head> <body> <h2 style="text-align:center">MYSQL批量删除相同前缀的表</h2> <br><br> <form id="form1" name="form1" method="post" action=""> <table width="500" border="0" align="center" > <td width="110">ip地址</td> <td width="500" height="26"><label> <input name="ip" type="text" id="ip" value="localhost" /> </label></td> </tr> <tr> <td height="25">数据库账号</td> <td height="26"><label> <input type="text" name="user" id="user" /> </label></td> </tr> <tr> <td>数据库密码</td> <td height="26"><label> <input type="text" name="pwd" id="pwd" /> </label></td> </tr> <tr> <td>数据库</td> <td height="26"><label> <input type="text" name="dbname" id="dbname" /> </label></td> </tr> <tr> <td>删除前缀</td> <td height="26"> <label> <input type="text" name="pre" id="pre" /> (例如:apoyl_)</td> </tr> <tr> <td height="67" colspan="2" align="center"> <label> <input type="submit" name="apoyl" id="apoyl" value="删除" n /> </label><a href=http://www.apoyl.com/?p=871 target="_blank" >帮助</a></td> </tr> </table> </form> </body> </html> <?php /* author:凹凸曼(LYC) /* email: jar-c@163.com /* url : http://www.apoyl.com/ */ if($_POST['apoyl']){ //参数获取及过滤 $params=array(); foreach($_POST as $k=>$v){ if(in_array($k,array('ip','user','pwd','dbname','pre'))){ $params[$k]=addslashes(trim($v)); if(empty($params[$k])){ echo '参数为空!'; exit; } } } //连接数据库 $conn=@mysql_connect($params['ip'],$params['user'],$params['pwd']) or die('数据连接失败'); mysql_select_db($params['dbname'],$conn); //获取该数据所有表 $rs=mysql_query('show tables',$conn); while($arr=mysql_fetch_array($rs)){ //判断是否为该前缀的表 $flag=strpos($arr[0],$params['pre']); if($flag===0){ $re=mysql_query('drop table '.$arr[0],$conn); if($re){ echo '<strong>'.$arr[0].'</strong> 删除成功!<br/>'; }else{ echo '<strong>'.$arr[0].'</strong><font color=red> 删除失败!</font><br/>'; } } } } ?>结:第一种方式与第二区别 更麻烦需要写出所有的表名,而第二种方式,更为简单,
但是只能删除相同前缀的表名
本文出自 “凹凸曼” 博客,请务必保留此出处 http://www.apoyl.com/?p=871
目前盖楼