iPhone で、FMDB を使用して SQLite データベースに最後に挿入された行の ID を取得する最良の方法は何ですか?
するよりも良い方法はありますか:
SELECT MAX(ID)
iPhone で、FMDB を使用して SQLite データベースに最後に挿入された行の ID を取得する最良の方法は何ですか?
するよりも良い方法はありますか:
SELECT MAX(ID)
ID
列が自動インクリメント列であることを保証できる場合は、MAX(ID)
問題ありません。
しかし、どのような場合でもカバーするために、次のような特殊なSQLite関数がありますLAST_INSERT_ROWID()
。
SELECT LAST_INSERT_ROWID();
FMDBでは、次の-lastInsertRowId
方法を使用します(上記を内部的に実行します)。
int lastId = [fmdb lastInsertRowId];
関数sqlite3_last_insert_rowid()が探しているものです。FMDB のソース コードを確認したところ、関数をラップするメソッドがFMDatabaseに呼び出され-lastInsertRowId
ているようです。