Последовательность в Postgresql - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу создать уникальный номер счета для каждой команды. Я хочу, чтобы он автоматически генерировался базой данных postgresql.

Я посмотрел документацию по созданию последовательностей в документах postgresql. Однако я не мог выяснить, как я могу указать, что числа должны быть уникальными на уровне team_id в таблице.

Не уверен, возможно ли это вообще.

В настоящее время я создаю следующий номер с помощью кода, подобного этому team.invoices.maximum(:invoice_number).to_i +

Чтобы справиться с параллелизмом, я создал уникальный индекс для таблицы счетов (team_id, invoice_number). Это предотвратит создание дублирующих номеров на командном уровне.

Но я хотел, чтобы это было сгенерировано из самого postgresql.

1 Ответ

0 голосов
/ 02 мая 2018

Я не смог найти прямого решения от postgresql. Тем не менее, я обнаружил этот гем под названием секвенированный , который помог мне создать последовательности с областью видимости, поддерживающие параллельные транзакции.

...