How to get key of auto increment of primary key?

How do I retrieve the key from an insert to a table that has an auto increment of primary key? I need to get the key of the row just inserted.

I could simply retrieve the row but I was look for another way to do this

Hello @Eagle442BR,

Quoting the Executing Updates documentation chapter:

After an INSERT statement, you can get the row ID of the inserted row:

try db.execute(
    sql: "INSERT INTO player (name, score) VALUES (?, ?)",
    arguments: ["Arthur", 1000])
let playerId = db.lastInsertedRowID

See also the PersistableRecord Protocol documentation chapter. This protocol can update a record object with its new auto-incremented id:

var paris = Place(
    id: nil,
    title: "Paris",
    coordinate: CLLocationCoordinate2D(latitude: 48.8534100, longitude: 2.3488000))

try paris.insert(db)   // some value

The GRDB documentation is your friend, @Eagle442BR: read it, search it, use it!

Thanks for the answer, Point well taken!

Terms of Service

Privacy Policy

Cookie Policy