在SQLite中是否有PRAGMA table_info('mytable')的等效SELECT语句?

Zim*_*nji 11 sqlite

在SQLite中是否有PRAGMA table_info('mytable')的等效SELECT语句?基本上,我想获得与PRAGMA返回完全相同的结果集:cid,name,type,notnull,dflt_value和pk.虽然我知道通过C函数sqlite3_table_column_metadata获取此信息的另一种方法,但我更喜欢使用SELECT语句.

cud*_*a12 11

根据文档

返回结果且没有副作用的 PRAGMA 可以作为表值函数从普通 SELECT 语句进行访问。对于每个参与的 PRAGMA,相应的表值函数与 PRAGMA 具有相同的名称,并带有 7 个字符的“pragma_”前缀。PRAGMA 参数和架构(如果有)将作为参数传递给表值函数。

例如,可以使用index_info pragma 读取有关索引中列的信息,如下所示:

PRAGMA index_info('idx52'); 或者,可以使用以下方式读取相同的内容:

SELECT * FROM pragma_index_info('idx52');

这不应该起作用吗?

  • `sqlite> SELECT * FROM pragma_table_info('results');` 应该可以工作,注意 `pragma_table_info` 的拼写(带下划线)并且表名应该在引号内 (9认同)