2017-06-20 11 views
0

数値フィールドamountがゼロでないすべての行を見つけるために最適化された部分インデックスを作成しようとしています。0以外の値を見つけるためにPostgreSQLで式を使ってインデックスを作成する

この

CREATE INDEX amount_not_zero_idx ON my_table (amount) 
WHERE amount <> 0; 

が動作しているが、それは私が「ゼロとは異なり、」唯一の情報として、心の中で持っているものは本当にないのですが重要です。私は何をしたいのは、この最高のパフォーマンスを与えるべきであるとして

CREATE INDEX amount_not_zero_idx ON my_table (amount <> 0) 
WHERE amount <> 0; 

のようなものである - しかし、PostgreSQLは「<>」エラーの構文を示します。

提案がありますか?

答えて

0

自分で見つけました。問題は単にかっこが抜けていて、正しい構文は

です。
CREATE INDEX amount_not_zero_idx ON my_table ((amount <> 0)) 
WHERE amount <> 0; 
+1

私は通常、検索に使用できるように部分インデックスにPK列を含めます。 –

関連する問題