如何清空mysql中所有表的所有行(在sql中)

Dan*_*ane 32 mysql

我正在编写一些数据库实用程序脚本,我需要做的任务之一是仅重建数据,但保留模式完整.使用bash和mysql工具(没有php等)从命令行自动执行此操作的最简单方法是什么?

更新:我希望解决方案能够在一个命令中处理所有表,如果可能,在添加或删除表时不需要更新.

Unk*_*ech 54

TRUNCATE tableName;
Run Code Online (Sandbox Code Playgroud)

这将清空表的内容.

编辑以响应Q编辑:从我的快速测试看来,你将不得不做至少2个查询,因为似乎"show tables"不能用作子查询,我不知道如何在bash所以这里是一个PHP示例,希望它会有所帮助.

<?php      
mysql_connect('localhost', 'user', 'password');
$dbName = "database";
mysql_select_db($dbName); /*added semi-colon*/
$result_t = mysql_query("SHOW TABLES");
while($row = mysql_fetch_assoc($result_t))
{
   mysql_query("TRUNCATE " . $row['Tables_in_' . $dbName]);
}
?>
Run Code Online (Sandbox Code Playgroud)

至少这需要一些错误处理.