相关疑难解决方法(0)

如何在sqlite3/iPhone上获取列名列表?

我想将我的iPhone应用程序迁移到新的数据库版本.由于我没有保存某些版本,我需要检查是否存在某些列名.

Stackoverflow条目建议执行select

SELECT sql FROM sqlite_master
WHERE tbl_name = 'table_name' AND type = 'table'
Run Code Online (Sandbox Code Playgroud)

并解析结果.

这是常见的方式吗?备择方案?

sqlite iphone

330
推荐指数
16
解决办法
43万
查看次数

在空表中查找SQLite列名称

对于踢,我正在编写一个"模式文档"工具,用于生成数据库中表和关系的描述.我目前正在填补它与SQLite合作.

我已经设法通过sqlite_master表上的查询提取SQLite数据库中所有表的名称.对于每个表名,我然后触发一个简单的名称

select * from <table name>
Run Code Online (Sandbox Code Playgroud)

查询,然后使用sqlite3_column_count()sqlite3_column_name()API收集列名称,我进一步提供sqlite3_table_column_metadata()以获取其他信息.很简单吧?

问题是它只适用于非空的表.也就是说,sqlite_column_*()API仅sqlite_step()在返回时才有效SQLITE_ROW,而空表不是这种情况.

所以问题是,我如何发现空表的列名?或者,更一般地说,是否有更好的方法在SQLite中获取此类模式信息?

我觉得必须有另一个隐藏的sqlite_xxx表隐藏在包含这些信息的地方,但到目前为止还没有找到它.

database sqlite schema

36
推荐指数
3
解决办法
4万
查看次数

标签 统计

sqlite ×2

database ×1

iphone ×1

schema ×1