SQLite模式信息元数据

前端之家收集整理的这篇文章主要介绍了SQLite模式信息元数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在sqlite数据库获取名称及其表。我需要的是一个结果集有2列:table_name | column_name。

MysqL中,我能够通过数据库INFORMATION_SCHEMA上的SQL查询获得这些信息。但是sqlite提供的表sqlite_master:

sqlite> create table students (id INTEGER,name TEXT);
sqlite> select * from sqlite_master;
  table|students|students|2|CREATE TABLE students (id INTEGER,name TEXT)

这导致一个DDL构造查询(CREATE TABLE),这对我没有帮助,我需要解析这个以获得相关信息。

我需要获取表的列表,并将它们与列连接,或者只是获取列与表名列。所以PRAGMA table_info(TABLENAME)不适用于我,因为我没有表名。我想获得数据库中的所有列元数据。

有没有更好的方法获取信息作为结果集查询数据库

你基本上在你的问题中命名解决方案。

获取表(和视图)的列表,请查询sqlite_master

SELECT name,sql FROM sqlite_master
WHERE type='table'
ORDER BY name;

(见the SQLite FAQ)

获取有关特定表中的列的信息,请使用PRAGMA table_info(table-name);如the SQLite PRAGMA documentation所述。

我不知道有什么办法获得tablename |列名作为单个查询的结果返回。我不相信sqlite支持这一点。你最好的选择是使用这两种方法来返回所需的信息 – 首先使用sqlite_master获取表的列表,然后使用PRAGMA table_info()遍历它们的列。

猜你在找的Sqlite相关文章