буду логировать каждый цикл как поколение последовательности (в отдельной таблице), и вставлять nextval + поколение * 9223372036854775807?
Сама формула ошибочна, а так да сделайте на поколение цифр этак 10 значащих чтоб с запасом 😂😂😂😂😂😂
А что в формуле-то не то?
Послушайте... извините, но Вы можете уняться уже? ;) На практике переполнить bigint Вам тупо не удастся, неужели Вы этого так и не поняли?
Скажу ещё раз, задание - алгоритмическая теория.
Потому что она быстрее чем ручной перебор MAX таблицы.
Говорите сколько хотите, а даже в теории переполнить "стандартную" bigint sequence Вам не удастся. Кстати, а переполнение numeric Вы не рассматриваете, раз это "теория"? ;)
Вы даже не путались понять как работают последовательности ?
Рассматривал. В таком случае создаётся следующий столбец-первичный ключ для таблицы поколений, и так можно повторять бесконечно раз.
Умножай сразу на 2**100, чего мелочиться то?
Следующая таблица, значит. Где посмотреть максимальное количество столбцов?
Это максимальное значение BIGINT, чтоб подсчитать сколько поколений индетификаторов прошло уже, и какое брать следующим.
А когда таблицы кончатся? ;) > Где посмотреть максимальное количество столбцов? https://www.postgresql.org/docs/current/limits.html > У меня вопрос - КАК это сделать, а не ПОНАДОБИТСЯ ЛИ, или ХОРОШО ЛИ. Занимаетесь Вы полной ерундой, честное слово. :(
Таблиц тут тожэ немного. Оидов всего 2 миллиарда, и лни ещё на индэксы и последовательности расходуются...
Обсуждают сегодня