在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

Swift GRDB insert后返回插入数据的主键值

原文地址: https://www.cveoy.top/t/topic/hzGT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录