uuid в качестве первичного ключа и ключа раздела для разбиения ha sh - PullRequest
2 голосов
/ 30 марта 2020

Я настраиваю секционированную таблицу ha sh в PostgreSQL 12, которая будет иметь 256 разделов. Я использую uuid в качестве основного ключа для таблицы. Допустимо ли использовать тот же столбец uuid, что и ключ ha sh?

1 Ответ

0 голосов
/ 15 апреля 2020

Не только приемлемо, но и обязательно.

Согласно документам, 11.6. Уникальные индексы

"PostgreSQL автоматически создает уникальный индекс, когда для таблицы определено уникальное ограничение или первичный ключ. Индекс охватывает столбцы, которые составляют первичный ключ или уникальное ограничение (многоколоночный index, если необходимо), и является механизмом, который обеспечивает ограничение. "

Также согласно документам, 5.11.2.3. Ограничения,

Для секционированных таблиц применяются следующие ограничения:

"Уникальные ограничения для секционированных таблиц должны включать все столбцы ключей секционирования. Это ограничение существует, поскольку PostgreSQL может обеспечивать только уникальность в каждом разделе по отдельности. "

...