如何查找 SQLite 数据库中所有列的信息?

Mas*_*ler 3 sql sqlite join information-schema

在线搜索,很容易找到获取 SQLite 表中所有列信息的方法:使用table_info(name)带有表名称的 pragma。但我见过的每个 SQL 数据库都有某种方法可以一次性获取整个数据库的所有列的信息,结果集中的某些列链接回拥有相关列的表。

SQLite 支持这个吗?或者只能通过对每个单独的表进行单独的查询来完成?

for*_*pas 6

您可以查询表sqlite_master以获取数据库的所有表,然后使用表值函数pragma_table_info()获取每个表的列:

WITH all_tables AS (SELECT name FROM sqlite_master WHERE type = 'table') 
SELECT at.name table_name, pti.*
FROM all_tables at INNER JOIN pragma_table_info(at.name) pti
ORDER BY table_name;
Run Code Online (Sandbox Code Playgroud)