如何使用Sqlite.swift获取列名列表?

时间:2016-04-22 04:03:06

标签: ios swift sqlite.swift

出于调试目的,我试图在SQLite表中获取一个简单的列名列表。我使用的是SQLite.swift framework

我的问题比How to get a list of column names on sqlite3 / iPhone?更具体,所以我正在创建一个新问题。

使用

try db.execute("PRAGMA table_info(table_name);")
this answer应用于documentation

对我不起作用(没有任何反应)。

1 个答案:

答案 0 :(得分:9)

假设您已经设置了名为db的数据库连接,要获取列名列表,可以使用以下代码:

do {

    let tableInfo = Array(try db.prepare("PRAGMA table_info(table_name)"))
    for line in tableInfo {
        print(line[1]!, terminator: " ")
    }
    print()

} catch _ { }

其中table_name被替换为表名的文字字符串。

您也可以添加

print(tableInfo)

查看有关您的表格的更多pragma信息。

<强>积分

感谢this answer提供有关如何执行此操作的线索。

示例功能

Joe Blow测试例程以保存一点点输入:

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)
}