2012-09-27 3 views
0

Я использую базу данных SQLite. Я хочу сделать вставку и получить идентификатор поля (автогенерированный) этой вставки. Идентификатор поля - это ключ автоинкремента. Я пользуюсь утверждениемПолучить идентификатор поля автоинкремента в SQLite

SELECT last_insert_rowid(); 

и это работает нормально.

Проблема заключается в том, что у меня есть много параллельных вставок в таблицу: в этом случае она может вернуть мне идентификатор, связанный с другой вставкой (а не моей вставкой).

Что делать, чтобы сделать операцию в режиме autonoumus?

ответ

1

От SQLite documentation;

Функция last_insert_rowid() Возвращает идентификатор последней строки вставки из соединения с базой данных, которая вызывается функция.

Итак, до тех пор, пока вы вызываете выбор по тому же соединению сразу после ввода вставки, другие одновременные пользователи полностью независимы и не будут приводить к неправильному возврату возвращаемого значения.

+0

Но я использую Android, и я не знаю, относится ли этот запрос к тому же соединению с db – GVillani82

+0

. Хорошо, я думаю, что db.close() для тесного соединения - это путь для закрытия соединения с базой данных. Спасибо за предложение :) – GVillani82

Смежные вопросы