PostgreSQL: Можете ли вы создать индекс в определении CREATE TABLE?
Я хочу добавить индексы к некоторым столбцам в таблице создания. Есть ли способ добавить их в определение CREATE TABLE или мне нужно добавить их после этого с помощью другого запроса?
CREATE INDEX reply_user_id ON reply USING btree (user_id);
Ответ 1
Кажется, что нет никакого способа указать индекс в синтаксисе CREATE TABLE. Однако PostgreSQL создает индекс для уникальных ограничений и первичных ключей по умолчанию, как описано в это примечание:
PostgreSQL автоматически создает индекс для каждого уникального ограничения и ограничения первичного ключа для обеспечения уникальности.
Кроме этого, если вы хотите не уникальный идентификатор, вам нужно будет создать его самостоятельно в отдельном запросе CREATE INDEX.
Ответ 2
Нет.
Однако вы можете создавать индексы unique в создании, но это потому, что они классифицируются как ограничения. Вы не можете создать "общий" индекс.