как я могу получить идентификатор последнего вставленного события?
Первичное / авто-inc-значение на основе int
получается через вставленный вами объект (объектэкземпляр обновляется в течение Insert
с новым значением).
var newRecord = new Record { SomeString = "StackOverflow" };
var numofRecordsInserted = conn.Insert(newRecord);
Console.WriteLine($"Newly inserted id = {newRecord.Key}");
это даже хороший способ справиться с ситуацией
Это зависит отваше приложение.Поле pri-key / auto-inc предотвращает повторное использование сгенерированных идентификаторов, то есть до тех пор, пока база данных не будет сброшена (путем удаления / повторного создания или сброса через таблицу sqlite_sequence
).
Если вы используете его в качестве "внешнего" ключа, здесь много opinions
, некоторые да, некоторые нет .... Лично, если вы никогда не используете его внешне для своего приложения (т.е. оно не передается /синхронизируется через удаленный API), он работает хорошо / быстро как внешний ключ, если вы понимаете, как SQLite его создает и когда его можно / можно сбросить, см. связанные документы.
Если AUTOINCREMENTКлючевое слово появляется после INTEGER PRIMARY KEY, которое изменяет алгоритм автоматического назначения ROWID, чтобы предотвратить повторное использование ROWID в течение срока жизни базы данных.Другими словами, целью AUTOINCREMENT является предотвращение повторного использования ROWID из ранее удаленных строк.
re: https://sqlite.org/autoinc.html