sql - 如何在MySql中截断多个表?

时间:2016-05-20 07:31:57

标签: php mysql sql truncate

$tblarray = array("abc1","abc2","abc3");    

$sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 
WHERE table_type ='base table' and TABLE_CATALOG='mydb' order by TABLE_NAME";
$res = mssql_query($sql);
while($rowTable = mssql_fetch_array($res))
{
   if(in_array($rowTable['TABLE_NAME'],$tblarray))
   { 
    $sqlDel = "SELECT DISTINCT concat('TRUNCATE TABLE',TABLE_NAME,';')  
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_NAME LIKE 'abc%' AND TABLE_SCHEMA = 'mydb'";
    $res_sqlDel = @mssql_query($sqlDel);
   }
}

首先,我从数据库中获取所有表名,然后截断特定表。但是这段代码不能正常工作。

1 个答案:

答案 0 :(得分:0)

select Table_name from information_schema.tables  where table_schema='YOUR_DB_NAME';

将返回所有表名

1)迭代结果集。

2)创建另一个SQL查询,如

 $query= "truncate table ".$resultSetRow['Table_name'];

在循环中执行它。基本上它会迭代结果集并逐个截断所有表。