In PostgreSQL 18, a table is created as CREATE TABLE c2 (x int UNIQUE NULLS NOT DISTINCT); and two rows are then inserted, both with x set to NULL. What happens?
The second insert is accepted but silently discarded
Both rows are stored
The second insert fails with a unique violation✓Correct answer
The CREATE TABLE fails, because NULLS NOT DISTINCT is not valid PostgreSQL 18 syntax
Explanation
NULLS NOT DISTINCT makes the constraint treat nulls as equal to one another, so the second null collides with the first and the insert is rejected. The default, which can be written explicitly as NULLS DISTINCT, does the opposite.