- Expression indexes also allow control over the scope of unique indexes.
- For example, this unique index prevents duplicate integer values from
- being stored in a double precision-typed column:
-CREATE UNIQUE INDEX test1_uniq_int ON tests ((floor(double_col)))
-
-
-
If we were to declare this index UNIQUE, it would prevent
creation of rows whose col1 values differ only in case,
WHERE success;
This is a particularly efficient approach when there are few
- successful tests and many unsuccessful ones.
+ successful tests and many unsuccessful ones. It is also possible to
+ allow only one null in a column by creating a unique partial index
+ with an IS NULL restriction.
- This index allows only one null in the indexed column by using a
- partial index clause to process only null column values, and using
- an expression index clause to index true instead
- of null:
-CREATE UNIQUE INDEX tests_target_one_null ON tests ((target IS NULL)) WHERE target IS NULL;
-
-