【发布时间】:2014-02-07 14:42:53
【问题描述】:
我想获取 Sqlite3 数据库中每个表中的行数。我想避免写出一个速记查询。我可以得到这样的表列表:
SELECT name FROM sqlite_master WHERE type='table'
我想在这样的子查询中使用它:
select count (*) from (SELECT name FROM sqlite_master WHERE type='table');
但只会返回子查询中的总行数,这不是我想要的。
如何编写一个查询来列出每个表及其计数?
我已经看到动态 SQL 用于这种事情,但我认为 SQLite 没有。
我已经编写了一个 bash 循环来执行此操作,但我更愿意将其作为单个查询来完成
for t in $(sqlite3 data.db "SELECT name FROM sqlite_master WHERE type='table'"); do
echo -n "$t = "; sqlite3 data.db "SELECT COUNT(*) FROM $t;"
done
赞赏的想法
【问题讨论】:
-
你需要这个数有什么用?
-
查看每种类型有多少条记录。最终从
sqlite_sequence中删除空表的条目。
标签: sqlite