Задать вопрос
x67
@x67

Что будет со счетчиком?

Есть одна таблица, в которой одно из полей использует sequence типа integer. По моим подсчетам, через примерно 2000 или 4000 суточных цикла (всего 5-10 лет) значения для счетчика закончатся. Что тогда надо будет сделать? (При условии что у меня бесконечные ресурсы сервера и память не закончится раньше)
  • Вопрос задан
  • 427 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега PostgreSQL
Седой и строгий
Использовать sequence типа bigserial. Максимальное значение для BigInteger - 9223372036854775807. При 1000 записей в секунду вам понадобится около 300 миллионов лет на исчерпание ёмкости идентификаторов.
Ответ написан
Комментировать
BuriK666
@BuriK666
Компьютерный псих
burik=# create table test (id serial not null primary key, value integer);
CREATE TABLE
burik=# alter sequence test_id_seq maxvalue 2;
ALTER SEQUENCE
burik=# insert into test (value) VALUES(1);
INSERT 0 1
burik=# insert into test (value) VALUES(2);
INSERT 0 1
burik=# insert into test (value) VALUES(3);
ERROR:  nextval: reached maximum value of sequence "test_id_seq" (2)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы