Swift GRDB insert后返回插入数据的主键值
在Swift GRDB中,可以使用插入返回主键值的方式来获取插入数据的主键值。以下是一个示例:
import GRDB
// 创建数据库连接
let dbQueue = try DatabaseQueue(path: "path_to_database")
// 创建表
try dbQueue.write { db in
try db.create(table: "items") { t in
t.autoIncrementedPrimaryKey("id")
t.column("name", .text).notNull()
}
}
// 定义数据模型
struct Item: Codable, FetchableRecord, MutablePersistableRecord {
var id: Int64?
var name: String
}
// 插入数据并返回主键值
let item = Item(name: "Test Item")
try dbQueue.write { db in
try item.insert(db)
if let id = db.lastInsertedRowID {
print("插入成功,主键值为 \(id)")
}
}
在上述示例中,我们首先创建了一个名为"items"的表,其中包含一个自增的主键"id"和一个"name"列。然后,我们定义了一个名为Item的数据模型,它遵循了Codable、FetchableRecord和MutablePersistableRecord协议。接下来,我们创建了一个Item实例并将其插入数据库中。通过调用db.lastInsertedRowID获取到插入数据的主键值,并将其打印出来。
请注意,db.lastInsertedRowID是一个可选值,因此在使用之前需要进行可选绑定或强制展开的处理。如果插入失败,db.lastInsertedRowID将为nil
原文地址: https://www.cveoy.top/t/topic/hzGT 著作权归作者所有。请勿转载和采集!