Пользовательская последовательность в postgres - PullRequest
0 голосов
/ 28 февраля 2012

Мне нужен собственный уникальный идентификатор (последовательность).В моей таблице есть поле ready_to_fetch_id, которое по умолчанию будет нулевым, и когда мое сообщение будет готово к доставке, я обновлю его с уникальным максимальным идентификатором, это довольно тяжелый процесс по мере увеличения нагрузки.

Так что этов postgres может быть некоторая последовательность, допускающая нулевые и уникальные идентификаторы.

1 Ответ

1 голос
/ 28 февраля 2012

Допуск значений NULL не имеет ничего общего с последовательностями. Если ваше определение столбца допускает значения NULL, вы можете поместить значения NULL в столбец. При обновлении столбца вы берете следующее значение из последовательности.

Обратите внимание, что если вы планируете использовать идентификаторы для отслеживания того, какие строки вы уже обработали, это не будет работать идеально. Когда две транзакции собираются обновить столбец ready_to_fetch_id одновременно, транзакция, начавшаяся последней, может зафиксироваться первой, что означает, что более высокий идентификатор последней запущенной транзакции станет видимым перед более низким идентификатором, который использовала более ранняя транзакция.

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