27

iPhone で、FMDB を使用して SQLite データベースに最後に挿入された行の ID を取得する最良の方法は何ですか?

するよりも良い方法はありますか:

SELECT MAX(ID)
4

4 に答える 4

67

ID列が自動インクリメント列であることを保証できる場合は、MAX(ID)問題ありません。

しかし、どのような場合でもカバーするために、次のような特殊なSQLite関数がありますLAST_INSERT_ROWID()

SELECT LAST_INSERT_ROWID();

FMDBでは、次の-lastInsertRowId方法を使用します(上記を内部的に実行します)。

int lastId = [fmdb lastInsertRowId];
于 2011-05-03T09:13:15.467 に答える
9

関数sqlite3_last_insert_rowid()が探しているものです。FMDB のソース コードを確認したところ、関数をラップするメソッドがFMDatabaseに呼び出され-lastInsertRowIdているようです。

于 2011-05-03T10:39:33.977 に答える