You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用单条命令批量显示指定SQLite表内容并计时

实现批量查询指定表并计时的单条命令

这问题我熟,刚好可以用sqlite3命令行工具结合Shell的命令替换和time命令来实现,一条命令就能搞定批量查询+计时的需求,具体方案如下:

基础版本命令

time sqlite3 your_database.db "$(sqlite3 your_database.db "SELECT 'SELECT * FROM ' || name || ';' FROM sqlite_master WHERE type = 'table' AND name LIKE '%#_1' ESCAPE '#'")"

命令拆解

  • 外层time:负责统计整个命令的执行耗时,执行完后会输出用户时间、系统时间和总耗时信息。
  • 内层sqlite3查询:通过你提供的表名筛选逻辑,动态生成每个目标表的全量查询语句(格式为SELECT * FROM 表名;)。
  • 外层sqlite3执行:把内层生成的所有SQL语句作为参数传入,批量执行并输出所有表的内容。

优化版本(带表名标识)

如果希望输出结果更清晰,能区分不同表的内容,可以在每个表的查询结果前加上表名标识,命令调整为:

time sqlite3 your_database.db "$(sqlite3 your_database.db "SELECT 'SELECT ''=== 表名: ' || name || ' ==='' AS ''''; SELECT * FROM ' || name || ';' FROM sqlite_master WHERE type = 'table' AND name LIKE '%#_1' ESCAPE '#'")"

这个版本会在每个表的内容前输出类似=== 表名: xxx_1 ===的分隔行,方便你快速定位不同表的数据。

注意事项

  1. 记得把命令中的your_database.db替换成你实际的数据库文件路径和名称。
  2. 如果你的表名包含空格、特殊字符(比如-、@),建议给表名加上双引号避免解析错误,调整内层的SQL语句为:
    SELECT 'SELECT * FROM "' || name || '";' FROM sqlite_master WHERE type = 'table' AND name LIKE '%#_1' ESCAPE '#'
    

内容的提问来源于stack exchange,提问作者Yoann Pageaud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:27:32