Список системных таблиц в SQLite

Я пытаюсь отфильтровать все таблицы в базе данных SQLite на основе того, являются ли они системными таблицами или созданными пользователем.

До сих пор я узнал, что они с префиксом sqlite_ и AllDataTypes.

Кто-нибудь сделал что-то подобное? Есть ли их список?

Спасибо заранее.

Ответ 1

Существует только одна системная таблица, которая имеет какое-либо значение.

select * from sqlite_master

но вы можете получить полезную информацию от sqlite_sequence,

Ответ 2

Я думаю, что он может быть отфильтрован по имени (как вы уже сделали)

Я использовал script

SELECT 
  name, type
FROM 
  sqlite_master
WHERE 
  type in ('table', 'view')
AND 
  name not like 'sqlite?_%' escape '?'

Ответ 3

sqlite_autoindex_TABLE_N - который будет иметь ограничения UNIQUE и PRIMARY KEY для обычной таблицы.

sqlite_statN - где будет N целое число. Такие таблицы хранят статистику базы данных, собранную командой ANALYZE и используемую планировщиком запросов, чтобы помочь определить лучший алгоритм для использования для каждого запроса.

Источник: https://www.sqlite.org/fileformat2.html

sqlite_user - эта таблица будет присутствовать, если мы настроим требуемую для аутентификации базу данных.

Источник: http://www.sqlite.org/src/doc/trunk/ext/userauth/user-auth.txt