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

SQLite3如何自动导出多个匹配wpts_*模式的表?

批量处理SQLite中匹配wpts_*模式的表数据导出

问题说明

你之前尝试的两种写法都无法实现需求:

  • SELECT time, lat, lng, acc FROM 'wpts_%':SQLite不支持直接用通配符匹配表名
  • SELECT * FROM (SELECT name FROM sqlite_schema WHERE type ='table' AND name LIKE 'wpts_%'):这个查询仅返回表名列表,没有实际读取表内数据

下面提供两种无需人工干预的解决方案:


方案1:合并所有表数据并添加来源表标识(带分隔效果)

通过动态生成UNION ALL语句,给每条数据加上来源表名,区分不同表的内容:

  1. 执行以下SQL生成合并查询语句:
SELECT GROUP_CONCAT(
  'SELECT time, lat, lng, acc, ''' || name || ''' AS source_table FROM ' || name,
  ' UNION ALL '
) AS combined_query
FROM sqlite_schema
WHERE type = 'table' AND name LIKE 'wpts_%';
  1. 复制查询结果里的combined_query内容,作为新的SQL执行,就能得到包含所有表数据且带来源表名的结果集,直接导出即可。

方案2:自动生成每个表单独导出到文件的脚本

如果需要每个表单独导出到独立文件,可通过SQL生成导出命令脚本:

  1. 执行以下SQL生成导出命令:
SELECT GROUP_CONCAT(
  '.mode csv' || CHAR(10) ||
  '.output ' || name || '.csv' || CHAR(10) ||
  'SELECT time, lat, lng, acc FROM ' || name || ';' || CHAR(10) ||
  '.output stdout',
  CHAR(10) || CHAR(10)
) AS export_script
FROM sqlite_schema
WHERE type = 'table' AND name LIKE 'wpts_%';
  1. 将查询结果中的export_script内容保存为export_tables.sql文件
  2. 在终端执行以下命令,自动完成所有表的单独导出:
sqlite3 your_database.db < export_tables.sql

执行后每个wpts_*表会对应生成一个同名CSV文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:25:14