AUTOINCREMENT SQLite: пропуск номера строки не доказывает потерю измерения

Запросить

Фотография конкретного исполнения не приложена.

INTEGER PRIMARY KEY в обычной SQLite-таблице связан с rowid и может получать значение автоматически без AUTOINCREMENT. Дополнительное слово меняет правила назначения, прежде всего предотвращая повторное использование ранее применённых автоматически выбранных идентификаторов в предусмотренном смысле. Оно не является обязательным условием обычной автоматической нумерации.

Монотонный рост AUTOINCREMENT не означает последовательность без пропусков. Неудачная вставка, например из-за нарушения уникальности, способна оставить разрыв. Поэтому сравнение соседних rowid нельзя использовать как единственное доказательство потери сообщений телеметрии или неполной доставки от датчика.

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

В приёмке проверяют повторную доставку, отвергнутую вставку и удаление тестовой записи с последующим добавлением. Сверяют требования к идентичности и обнаружению пропусков. AUTOINCREMENT имеет дополнительную стоимость; его применение должно объясняться нужной семантикой ключа, а не ожиданием автоматически получить достоверную хронологию архива.

Основание — SQLite official unversioned documentation snapshot; Download index observed 3.54.1, individual pages not version-tagged, разделы Summary; AUTOINCREMENT semantics. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Установленная библиотека, сборка, файловая система и база узла не проверялись. Это проектный сценарий; SQL и сервисные операции на реальных данных не выполнялись.

Все разборы

Россия Казахстан
office@apocalypsemoto340.ru

Все запросы только на email