unique-constraint und null-Werte

Hi,

ich habe eine (varchar) Spalte, die beliebig viele null-Werte enthalten kann. Aber jeder non-null-Wert darf nur genau einmal vorkommen. Z.B. darf der Wert ‘123’ nur einmal in der Spalte verwendet werden, aber eben auch beliebig viele null-Werte. Mich würde jetzt das genaue Verhalten eines unique-constraints interessieren: Sind null-Werte erlaubt oder nicht ?

Ich habe bereits in der Doku unter PostgreSQL: Documentation: Manuals: PostgreSQL 8.2: CREATE TABLE nachgeschaut, bin mir aber nicht sicher, ob ich es richtig verstanden habe.

Danke, Lothar

Warum testest Du es nicht?

test=*# create table blub (t text);
CREATE TABLE
test=*# create UNIQUE index idx_t on blub(t);
CREATE INDEX
test=*# insert into blub values (NULL);
INSERT 0 1
test=*# insert into blub values (NULL);
INSERT 0 1
test=*# insert into blub values (NULL);
INSERT 0 1
test=*# insert into blub values ('abc');
INSERT 0 1
test=*# insert into blub values (NULL);
INSERT 0 1
test=*# insert into blub values ('def');
INSERT 0 1
test=*# insert into blub values (NULL);
INSERT 0 1
test=*# insert into blub values ('abc');
ERROR:  duplicate key violates unique constraint "idx_t"

Andreas