Лучший способ получить идентификатор последней вставленной строки на SQLite
На iPhone, какой лучший способ получить идентификатор последней вставленной строки в базе данных SQLite с помощью FMDB?
Есть ли лучший способ, а не делать:
SELECT MAX(ID)
Ответы
Ответ 1
Если вы можете гарантировать, что столбец ID
является столбцом автоматического увеличения, MAX(ID)
в порядке.
Но для покрытия любого случая существует специализированная функция SQLite, называемая LAST_INSERT_ROWID()
:
SELECT LAST_INSERT_ROWID();
В FMDB вы используете метод -lastInsertRowId
(который выполняет внутреннее выполнение выше):
int lastId = [fmdb lastInsertRowId];
Ответ 2
Функция sqlite3_last_insert_rowid() - это то, что вы ищете. Выбрав только исходный код для FMDB, похоже, существует метод FMDatabase под названием -lastInsertRowId
, который обертывает функцию.
Ответ 3
Попробуйте следующее:
var rowid: Int = Int(contactDB.lastInsertRowId())