PostgreSQL: Можете ли вы создать индекс в определении CREATE TABLE? - PullRequest
82 голосов
/ 05 июня 2011

Я хочу добавить индексы для некоторых столбцов в таблице при создании.Есть ли способ добавить их в определение CREATE TABLE или мне нужно добавить их позже с другим запросом?

CREATE INDEX reply_user_id ON reply USING btree (user_id);

Ответы [ 2 ]

91 голосов
/ 05 июня 2011

Кажется, что нет никакого способа указать индекс в синтаксисе CREATE TABLE.Однако PostgreSQL по умолчанию создает индекс для уникальных ограничений и первичных ключей, как описано в в этой заметке :

PostgreSQL автоматически создает индекс для каждого уникального ограничения и ограничения первичного ключа дляобеспечить уникальность.

Кроме этого, если вам нужен неуникальный индекс, вам нужно будет создать его самостоятельно в отдельном запросе CREATE INDEX.

16 голосов
/ 05 июня 2011

номер

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

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