Обсуждение: unique index on fields with possible null values
Hello pgsql-sql, I'm trying to find a solution for unique index on fields with possible null values. Example table: CREATE TABLE test (a integer NOT NULL,b integer NULL ); As long as unique index can't check if there are records with null values i found the only one solution for this problem: CREATE UNIQUE INDEX test_uniq1 ON test (a, COALESCE(b,0)); Are there any other ways of doing this? -- Best regards,Dmitry mailto:dmitry@ruban.biz
Dmitry Ruban <dmitry@ruban.biz> writes:
> I'm trying to find a solution for unique index on fields with possible
> null values.
You appear to be hoping that a unique index would constrain a column to
contain at most one null entry. It doesn't work like that, and I
strongly urge you to reconsider what you're using null for. I think you
are in for a world of hurt, well beyond this one particular point,
because the SQL spec's semantics for null are not designed around the
idea that it represents a single distinguishable value. What it
represents is "unknown".
regards, tom lane