我想知道如何在 swift 中为 SQLite 中的 bool 值使用默认值。我正在使用以下库:https://github.com/stephencelis/SQLite.swift如果我不使用所有值,我有一个不会执行的查询。
我在循环中这样做:
let insert = table.insert(name <- names[i])
捕获错误:
NOT NULL constraint failed: table.bool (code: 19)
我的问题是我希望bool 值默认为NULL。
我试图用这样的默认值创建我的数据库:
let bool = Expression<Bool?>("bool")
那么如何在 Swift 中创建 SQLite 中的默认值呢?
最佳答案
该错误清楚地告诉您此列中不能有 null,因此将 null 设置为默认值毫无意义。因此,您的第一步是更改数据库定义以允许 null(如果可能)。
更好的选择可能是重新考虑为什么要为 bool 值设置 null,或者列的类型是否应该不同。
关于默认值,我会通过将插入移动到一个单独的函数中并使用对参数默认值的快速支持来快速解决这个问题。
例子
func insertStuff(withName name: String, flag: Bool = false) {
//db-code
}
然后使用/不使用所有参数调用它
insertStuff(withName: "abc", flag: true)
insertStuff(withName: "edf")
更新
如果您确实希望该列为 nil,则可以使用可选参数
func insertStuff(withName name: String, flag: Bool? = nil) {
//db-code
}
关于ios - 无法在 SQLite 中找到默认值,swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50127896/