我想要在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
中空表的条目。 - starfry