実装の詳細であるインデックスの一意性に関するドキュメントを読んだ後、Postgres の一意とインデックスの関係を整理しようとしました。
テーブルに一意の制約を追加するための推奨される方法は、ALTER TABLE ... ADD CONSTRAINT です。一意の制約を強制するためのインデックスの使用は、直接アクセスしてはならない実装の詳細と見なすことができます。ただし、一意の列に手動でインデックスを作成する必要はないことに注意してください。これを行うと、自動作成されたインデックスが複製されるだけです。
したがって、ドキュメントを言葉どおりに解釈して、物事を一意であると宣言し、暗黙的なインデックスを使用します。または、インデックスを作成し、値が一意であるとは想定しません。これは間違いですか?
unique から取得するインデックスはどのようなものですか? btree のみが一意の制約を受け入れ、unique が暗黙的にインデックスを作成することを考えると、UNIQUE が btree インデックスを作成するのは本当ですか? うっかりハッシュ インデックスで範囲を実行したくありません。