使用 swift + FMDB 插入 NULL

Posted

技术标签:

【中文标题】使用 swift + FMDB 插入 NULL【英文标题】:Insert NULL with swift + FMDB 【发布时间】:2015-05-13 04:57:06 【问题描述】:

如何使用 swift 将 NULL 插入列中

let myNullableValue: Double? = nil
fmdb.executeUpdate(
  "INSERT INTO myTable(myNullableColumn) SELECT :myNullableValue"
  , withParameterDictionary: [ "myNullableValue": myNullableValue ])

【问题讨论】:

【参考方案1】:

来自 FMDB 源代码 https://github.com/ccgus/fmdb/blob/master/src/fmdb/FMDatabase.m

- (void)bindObject:(id)obj toColumn:(int)idx inStatement:(sqlite3_stmt*)pStmt 

    if ((!obj) || ((NSNull *)obj == [NSNull null])) 
        sqlite3_bind_null(pStmt, idx);
    
    // ...

可以得出结论,NSNull 值作为 SQLite NULL 插入, 即参数字典应该是

[ "myNullableValue": NSNull() ]

【讨论】:

以上是关于使用 swift + FMDB 插入 NULL的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 swift 3 在 FMDB 中执行更新

使用 FMDB 和 NSDictionary 向 SQLite 数据库添加 NULL 值

使用 Swift 的 FMDatabaseQueue (FMDB)

如何在 Swift 中使用“FMDB/SQLCipher”进行加密和解密?

使用 Swift + FMDB 打开和关闭数据库

如何将 FMDB 与 cocoapods 和 swift 一起使用?