如何获得与Sqlite.swift列名称的列表?
为了进行debugging,我试图在我的SQLite表中获得列名的简单列表。 我正在使用SQLite.swift框架 。
我的问题是比如何得到sqlite3 / iPhone上的列名称更具体? 所以我正在创造一个新的问题。
运用
try db.execute("PRAGMA table_info(table_name);")
通过应用这个答案的文件没有为我工作(什么都没有发生)。
假设你已经有一个名为db
set up的数据库连接,为了得到列名的列表,你可以使用下面的代码:
do { let tableInfo = Array(try db.prepare("PRAGMA table_info(table_name)")) for line in tableInfo { print(line[1]!, terminator: " ") } print() } catch _ { }
其中table_name
被replace为表名的文字string。
你也可以添加
print(tableInfo)
查看关于您的表格的更多附注信息。
积分
感谢这个答案的线索如何做到这一点。
示例函数
从乔·布洛testing例程,以节省一些打字:
func findColumns(_ tableName:String) { var asAnArray:[String] = [] do { let s = try db!.prepare("PRAGMA table_info(" + tableName + ")" ) for row in s { asAnArray.append(row[1]! as! String) } } catch { print("some woe in findColumns for \(tableName) \(error)") } let asAString = asAnArray.joined(separator: ",") print(asAnArray) print(asAString) }