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