Есть ли способ в SQLite превратить это в цикл и распечатать COUNT (*) для каждой из таблиц?
Благодаря магии sqlite3, ответ таков:да, если мы допустим, что sqlite3 является частью SQLite.
В любом случае, техника очень удобна.
Предполагая, что $ db является интересующим файлом базы данных:
echo "SELECT 'SELECT count(*), \"' || name || '\" FROM ' || name || ';' FROM sqlite_master WHERE type = 'table';" |
sqlite3 -readonly "$db" | sqlite3 -readonly "$db"
Для известной базы данных flight.db это приводит к:
8107|airports
6048|airlines
67663|routes
1|sqlite_stat1
24|sqlite_stat4
Сезон по вкусу.