У меня чисто академический вопрос о базах данных SQLite.
Я использую SQLite.net для использования базы данных в моем проекте WinForm, и когда я настраивал новую таблицу, я задумался о максимальных значениях столбца идентификатора.
Я использую IDENTITY
для своего [ID]
столбца, который согласно сопоставлениям типов данных SQLite.net , эквивалентно DbType.Int64
. Обычно я начинаю свои столбцы идентификаторов с нуля (с этой строкой в качестве тестовой записи) и автоматически увеличиваю базу данных.
Максимальное значение (Int64.MaxValue
) - 9,223,372,036,854,775,807. Для моих целей я никогда даже не скрою поверхность при достижении этого максимума, но что происходит в базе данных, которая это делает? Пытаясь прочитать это, я обнаружил, что DB2, по-видимому, «оборачивает» значение вокруг отрицательного значения (-9,223,372,036,854,775,807) и увеличивает оттуда, пока база данных не сможет вставить строки, потому что столбец идентификатора должен быть уникальным.
Это то, что происходит в SQLite и / или других механизмах баз данных?