我正在编写一些db实用程序脚本,我需要做的任务之一是仅重建数据,而保持架构不变。使用bash和mysql工具(无php等)从命令行自动执行此操作的最简单方法是什么?
更新:我希望该解决方案可以在一个命令中处理所有表,并且如果可能的话,如果添加或删除了表,则不需要更新。
TRUNCATE tableName;
这将清空表的内容。
响应Q编辑:从我的快速测试中看来,您将必须至少执行2个查询,因为似乎“显示表”不能用作子查询,我不知道该怎么做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]); } ?>
至少这需要一些错误处理。