我试图根据它们是系统表还是用户生成的表来过滤SQLite数据库中的所有表。
到目前为止,我发现它们是带有 sqlite _ 前缀和AllDataTypes的那些。
有人做过这样的事吗?有他们的清单吗?
提前致谢。
答案 0 :(得分:17)
只有一个系统表具有任何后果。
select * from sqlite_master
但您可以从sqlite_sequence
,
答案 1 :(得分:7)
我认为它可以按名称过滤(正如您已经完成的那样)
我用过脚本
SELECT
name, type
FROM
sqlite_master
WHERE
type in ('table', 'view')
AND
name not like 'sqlite?_%' escape '?'
答案 2 :(得分:1)
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