我想获取 Sqlite3 数据库中每个表中的行数。我想避免写出一个普通的查询。我可以得到这样的表列表:
SELECT name FROM sqlite_master WHERE type='table'
Run Code Online (Sandbox Code Playgroud)
我想在这样的子查询中使用它:
select count (*) from (SELECT name FROM sqlite_master WHERE type='table');
Run Code Online (Sandbox Code Playgroud)
但只会返回子查询中的总行数,这不是我想要的。
如何编写一个查询来列出每个表及其计数?
我见过这种事情的动态 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
Run Code Online (Sandbox Code Playgroud)
想法赞赏
小智 7
我使用以下 shell 语法盲目地从我正在调试的数据库中的表中获取计数。
db="database.db"
for i in `sqlite3 "$db" "SELECT name FROM sqlite_master WHERE
type='table';"`; do echo -n $i\ \=\ ; sqlite3 "$db" "SELECT
COUNT(*) FROM $i;"; done
cols = 0
sqlite_sequence = 0
datacols = 17
hits = 0
host = 0
document = 0
admin = 2
comments = 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5750 次 |
| 最近记录: |