Summarize this improvement in the following sentence.
- Support for unique constraints and indexing treats null values as identical.
- Previously, null values were indexed as distinct values. Now you can create constraints that treat null values as identical by using
unique nulls not distinct.
Two unique styles
Create the example table.
|
|
Changes in supported data
In postgresql 14 or earlier, the uniqueness constraint treats null as not the same as null.
This is the same as the sql standard; in short, null means unknown. Thus, the null value does not violate the uniqueness constraint.
This can be done by inserting five identical rows into the table null_old_style.
This behavior is documented and meets expectations.
With the introduction of the nulls not distinct option, the uniqueness constraint is stricter and multiple null values are no longer supported.
Trying to insert another row with a val1 value of ‘Hello’ and a val2 value of null would violate the uniqueness constraint.
Of course, replace val1 with a value other than Hello and val2 with a null value and you can insert it.