C中空表中的SQLite列名

时间:2011-04-18 03:50:27

标签: c sqlite

我正在尝试捕获表中的字段,但即使表是空的,我也需要获取该数据。

sqlite3_table_column_metadata不是一个选项(它没有编译到我的SQLite3版本中)。

是否有获取该信息的技巧?

2 个答案:

答案 0 :(得分:2)

PRAGMA table_info(table_name);

返回列名列表

下面是一个链接:

http://www.sqlite.org/pragma.html#pragma_table_info

答案 1 :(得分:1)

如果您在本地运行,您可以下载源代码并编译您喜欢的任何选项。但如果这不是一个选项,那么仍有几种方法可以获得元数据。

您可以查询sqlite_master表,但数据不是最友好的形式。

select sql 
from sqlite_master 
where type='table' and name='your-table-name';

该查询将返回CREATE TABLE语句。期待格式化惊喜。

如果您可以从c界面发出“dot”命令,则可以打开列标题,然后查询任何表格。这是sqlite提示符的样子。

sqlite> .headers on
sqlite> select * from file_stats;
date|file_id|num_lines

只有拥有列名,才能获得数据类型。除非表中有数据,否则typeof()函数不会返回任何内容。

我也打算包含pragma table_info()函数,但是Trevor打败了我。我不知道你是否可以从c api发出pragma语句。

相关问题