数据库中有时需要创建一些临时的表来存放数据,到了一定期限,这些表就没有实际价值,就得清理掉。这些表名的前缀会是一致的。
sql语句要的是:
DROP TABLE [table_name],[table_name],[table_name];
取出同前缀的表名sql语句:
SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' )
AS statement FROM information_schema.tables
WHERE table_schema = 'ipdown' AND table_name LIKE 'temp%';
执行sql语句,得到的结果就是之前需要的那条sql语句。然后再执行这条得到的语句,就达到删除的目的。
转载地址:http://blog.csdn.net/iefreer/article/details/12627389
我是在ZF用使用的,实例代码如下:
$delsql = "SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' )
AS statement FROM information_schema.tables
WHERE table_schema = 'database_name' AND table_name LIKE '$pre_name%'";
$sql = $db->fetchOne($delsql);
$db->exec($sql);