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()遍历它们的列。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |