当前位置: 首页 > 面试题库 >

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

陶朝明
2023-03-14
问题内容

我正在编写一些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]);
}
?>

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



 类似资料:
  • 问题内容: 是否有一种快速的方法可以从中的所有表获取所有列名,而不必列出所有表? 问题答案:

  • 本文向大家介绍oracle清空所有表数据,包括了oracle清空所有表数据的使用技巧和注意事项,需要的朋友参考一下 方法: 1. 删除所有外键约束 2. drop表 3. 添加外键约束 代码使用powerdesign生成

  • 问题内容: 我有以下SQL: 这将按照我期望的方式对所有null进行计数。但是,我想使用此sql遍历目录中的每个表,例如在 有人可以提供执行此操作所需的sql吗,我对使用游标一无所知。 谢谢 问题答案: 无需游标。只需将您设置为 然后从此更改您的条款 到 所以整个代码…

  • 问题内容: 我有一个表A,并且有一个主键ID。 现在我要遍历A中的所有行。 我发现类似“针对A中的每个记录”的内容,但这似乎并不是您在MySQL中的处理方式。 我想为每一行获取一个字段并对其进行转换,将其插入到另一个表中,然后更新该行的某些字段。我可以将select部分和insert放入一个语句中,但是我也不知道如何在其中进行更新。所以我想循环。实际上,我不想使用MySQL以外的任何东西。 编辑

  • 问题内容: 我们有一个软件不会删除不再需要的条目。为了了解服务器中有多少数据正在浪费,并准备进行大型清理操作,我试图遍历所有表并拉出标记为删除的记录。这就是我正在使用的: 这是我的错误: 消息116,级别16,状态1,行19当未将EXISTS引入子查询时,只能在选择列表中指定一个表达式。 我意识到我的错误可能与选择该行中的两列有关 但是,我不确定如何才能确保选择下一行。 PS仅用于脚本测试。 如何

  • 我有以下矩阵: 我只想删除id为3的行。请注意,当我使用时,它仍然保留,因为id本身是唯一的。