$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);
}
}
首先,我从数据库中获取所有表名称,然后截断特定表。但这段代码无法正常工作。
最佳答案
select Table_name from information_schema.tables where table_schema='YOUR_DB_NAME';
将返回所有表名称
1) 迭代结果集。
2) 创建另一个 sql 查询,例如
$query= "truncate table ".$resultSetRow['Table_name'];
在循环中执行它。基本上它会迭代结果集并一一截断所有表。
关于php - sql - 如何在 MySql 中截断多个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37340617/