if sqlite3_exec(db, stringSql, nil, nil, nil) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("error Insert: \(errmsg)")
}
let lastRowId = sqlite3_last_insert_rowid(db);
print(lastRowId) // its gives you last insert id
if sqlite3_finalize(statement) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("error finalizing prepared statement: \(errmsg)")
}
statement = nil
//*** close data base
if sqlite3_close(db) != SQLITE_OK {
print("error closing database")
}
db = nil
4条答案
按热度按时间bihw5rsg1#
如果可以保证
ID
列是自动递增列,那么MAX(ID)
就可以了。但是为了涵盖任何情况,有一个专门的SQLite函数
LAST_INSERT_ROWID()
:在FMDB中,使用
-lastInsertRowId
方法(在内部运行上面的代码):epggiuax2#
函数sqlite3_last_insert_rowid()就是我们要找的,我们刚刚查看了FMDB的源代码,FMDatabase上似乎有一个名为
-lastInsertRowId
的方法 Package 了这个函数。xdyibdwo3#
swift 5使用此代码
例如
型
c9x0cxw04#
请尝试以下操作: