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

标签 mysql

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

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

关于mysql - 如何清空mysql中所有表的所有行(在sql中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454174/

相关文章:

Mysql连接过多错误

mysql - 检查 sql 中多行的条件并返回 true 或 false

mysql - 三元表达式验证 WHERE 子句 T-Sql 中的类型字段

java - 数据截断: Data too long for column 'Phone' at row 1

mysql - 来自多行插入的 ID

php - mysqli_stmt_get_result 替代 php 5.2.6

mysql - 如何检查记录不包含特定字符串?

mysql - 通过用户与城市关系查找国家/地区,其中用户与一个国家/地区的所有城市相关

mysql - 组合来自同一个表的统计查询

mysql - 如何删除并重新安装 MySql(重新安装不会恢复已删除的 "root"用户。)