加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite模式信息元数据

发布时间:2020-12-12 19:16:40 所属栏目:百科 来源:网络整理
导读:我需要在SQLite数据库中获取列名称及其表。我需要的是一个结果集有2列:table_name | column_name。 在MySQL中,我能够通过数据库INFORMATION_SCHEMA上的SQL查询获得这些信息。但是SQLite提供的表sqlite_master: sqlite create table students (id INTEGER,
我需要在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()遍历它们的列。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读