MYSQL如何批量删除相同前缀表?

最近再操作一些数据库的表时候,一些冗余的数据表,需要删除,但是删除表比较多,但是他们都相同的前缀,那怎样一键删除所有的(批量删除)呢?

下面写了两种办法进行处理

一、命令批量删除(需要列出所有要删除的表)

drop table `test_table1`,`test_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.keysou.com/?p=871 target="_blank" >帮助</a></td>    </tr></table></form></body></html><?php    /*  author:萧萧一风        /*  email: 77368447@qq.com        /*  url  : https://www.keysou.com/    */if($_POST['keysou']){  //参数获取及过滤 $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/>';      }   }  }}?>

结:第一种方式与第二区别 更麻烦需要写出所有的表名,而第二种方式,更为简单,

但是只能删除相同前缀的表名


联系方式
WeChat: fe88655 e-mail:77368447@qq.com

作者头像
萧萧一风创始人

做一个积极主动热情的人,为了想要完成的事情和实现的目标,拼命投入力量。

上一篇:Deprecated: Function set_magic_quotes_runtime() is deprecated 版本问题?
下一篇:gzip: stdin: not in gzip format 解决办法(tar: Error exit delayed from previous errors)

发表评论

×
选择打赏方式:

打赏

打赏

打赏

×
选择分享方式: