SQL Первичный ключ (ID) Автоматический запуск с начала - PullRequest
0 голосов
/ 24 января 2020

Я использую сторонний API для ценообразования, данные с начальной и конечной датой с ценой. Я проверил, что SQL база данных ограничивается следующим образом:

BIGINT    Integer data from -2^63 through 2^63 - 1

INT       Integer data from -2^31 through 2^31 - 1

SMALLINT  Integer data from -2^15 through 2^15 - 1

TINYINT   Integer data from 0     through 255

Источник

Когда данные поступают, я удаляю данные из таблицы и создаю новые. Потому что диапазон дат всегда меняется.

Итак, представьте, как, я достиг максимального значения идентификатора в таблице. Но на данный момент в таблице максимум 300 000 строк. Могу ли я начать идентификационный номер с 0 или 1? или я должен использовать mongodb?

Итак, в то же время есть 300.000 строк.

Best,

Ответы [ 2 ]

2 голосов
/ 24 января 2020

Если это не представляет проблему с уникальной идентификацией данных:

Вместо этого можно напрямую использовать TRUNCATE, это сбрасывает идентичность. Но для этого могут потребоваться более высокие привилегии.

или DELETE и сброс удостоверения с помощью DBCC CHECKIDENT ('table', RESEED, 1)

1 голос
/ 24 января 2020

Допустим, вы используете столбец идентификации BIGINT в качестве первичного ключа. Максимальное значение составляет 9 223 372 036 854 775 807. Это означает, что если вы добавите, скажем, 10 000 строк в секунду в таблицу для обозримого будущего (и далее), вам потребуется:

9 223 372 036 854 775 807 / (10 0000 * 60 (se * 1008) *) * 60 (мин) * 24 (час) * 365 (день))

=> 29 247 120 лет до достижения максимального значения. (И в расчете даже не учитываются високосные годы.)

Так что, будь я на вашем месте, я бы не беспокоился о том, что у вас закончатся удостоверения личности.

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