Подтвердить что ты не робот

Лучший способ получить идентификатор последней вставленной строки на SQLite

На iPhone, какой лучший способ получить идентификатор последней вставленной строки в базе данных SQLite с помощью FMDB?

Есть ли лучший способ, а не делать:

SELECT MAX(ID)
4b9b3361

Ответ 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())