我想打印我的sql表内容,因此,我想从表中检索列名 . 我遇到的一个解决方案是:
SELECT sql FROM sqlite_master WHERE tbl_name = 'table_name' AND type = 'table'
但看起来我将不得不解析结果 .
另一个建议是使用:
PRAGMA table_info(table_name);
但是下面的sqlite页面建议不要使用它:http://www.sqlite.org/pragma.html#pragma_full_column_names
有没有办法实现这一目标 . 还有什么是使用的语法
PRAGMA table_info(table_name);
以上解决方案取自here
3 回答
由于您的问题已被标记
c
我假设您可以访问SQLite C API . 如果使用从所需表中选择的prepare_v2 functions之一创建预准备语句,则可以使用sqlite3_column_name获取每列的名称 .你可以安全地使用PRAGMA table_info(table-name);,因为它没有以任何方式被弃用(你的链接发布到另一个pragma) .
如果你使用c / c,你可以使用函数sqlite3_get_table(db,query,result,nrow,ncol,errmsg);
将查询作为select * from table;
前几个结果[0],结果[1] ......将有列名 .