Как наиболее эффективно получить первичный ключ (например, ID), только что вставленный в БД SQLITE? - PullRequest
1 голос
/ 24 ноября 2011

например: таблица, созданная как показано ниже:

create table tbl_text( id integer primary key, txt text unique, ref integer );

вставка записи:

insert into tbl_text values(null, "Hello", 123);

как получить идентификатор "Hello", который был вставлен быстрее всего?запрос работает, но это может занять много времени, например

select id from tbl_text where txt='Hello'

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Взгляните на sqlite3_last_insert_rowid () , из документов он возвращает идентификатор строки самого последнего успешного INSERT в базу данных из соединения с базой данных .

2 голосов
/ 24 ноября 2011

Вы можете использовать last_insert_rowid() или sqlite3_last_insert_rowid() в зависимости от того, как вы получаете доступ к sqlite.Не упустите другой поток, выполняющий вставку в том же соединении, больше об этом в их документации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...