web-dev-qa-db-ja.com

PostgreSQL:CREATE TABLE定義でインデックスを作成できますか?

作成時にテーブルの列の一部にインデックスを追加したい。それらをCREATE TABLE定義に追加する方法はありますか、それとも別のクエリで後で追加する必要がありますか?

CREATE INDEX reply_user_id ON reply USING btree (user_id);
87
Xeoncross

CREATE TABLE構文でインデックスを指定する方法はないようです。ただし、PostgreSQLは this note で説明されているように、デフォルトで一意の制約と主キーのインデックスを作成します。

PostgreSQLは、一意性を強制するために、一意の制約と主キー制約ごとにインデックスを自動的に作成します。

それ以外に、一意でないインデックスが必要な場合は、別のCREATE INDEXクエリで自分で作成する必要があります。

96
rid

いや.

ただし、作成時にuniqueインデックスを作成できますが、それはconstraintsとして分類されるためです。 「一般」インデックスを作成することはできません。

18
Bohemian