sqlite3 table_info用于视图。该列来自哪个表?

时间:2012-12-01 17:57:31

标签: view sqlite schema

当我跑步时:

PRAGMA table_info(myView)

它给了我一个列表,类似于:

0|cardSet|CHAR(255)|0||0
1|multiverseId|INTEGER|0||0
2|cardSetId|INTEGER|0||0
3|name|CHAR(255)|0||0
4|type|CHAR(16)|0||0
5|cost|nvarchar(16)|0||0
6|color|nvarchar(16)|0||0
7|rarity|nvarchar(16)|0||0

但是从这一点来看,我没有详细说明这些列实际上是在哪个表格中。我正在考虑使用正则表达式来尝试解决这个问题,但是想知道是否有人知道替代方案?

1 个答案:

答案 0 :(得分:1)

可能有来自多个表的列,或者根本没有表的列:

CREATE VIEW example AS
SELECT a.a1, b.b1, a.a2 + b.b2 AS both, 42 AS neither FROM a, b;

在任何情况下,SQLite都不会存储此信息,以便可以直接访问它。 您可以阅读的只是原始视图定义:

SELECT sql FROM sqlite_master WHERE type = 'view' AND name = 'myView'