首页 > 代码库 > mysql批量删除指定前缀或后缀表

mysql批量删除指定前缀或后缀表

今天突然发现我们数据库中多出许多表,后缀名为“copy”,估计是navicat直接拷贝导致的,然后要对这些有相同后缀名的表进行删除,如果一个一个选择会很麻烦,表计较多,在网上找了找方法,网上主要通过sql语句来删除,自己在他的基础上写了一个php文件实现了批量删除表,其实原理是一样的。

1、MYSQL批量删除

     [1]获得批量删除的命令:

Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables Where table_name LIKE '%_copy';
其中需要调整的仅需要调整“%_copy”即可,根据自己要删除的表特点进行调整

    [2]删除表,根据生成的文本,复制之后,执行即可实现删表。

2、php实现删除,其实和上面原理一样

<?php
$con = mysql_connect("localhost","root","");
mysql_select_db("ceshibiao", $con);
$query= "Select CONCAT( 'drop table ', table_name, ';' )  as ceshi
FROM information_schema.tables 
Where table_name LIKE '%_copy';";
$cursor= mysql_query($query);
while($ROW=mysql_fetch_array($cursor))
{	
	mysql_query($ROW["ceshi"])
}
?>

mysql批量删除指定前缀或后缀表