Re: uniqueness constraint with NULLs
От | A. Kretschmer |
---|---|
Тема | Re: uniqueness constraint with NULLs |
Дата | |
Msg-id | 20090629080232.GF24737@a-kretschmer.de обсуждение исходный текст |
Ответ на | Re: uniqueness constraint with NULLs (Robert Edwards <bob@cs.anu.edu.au>) |
Список | pgsql-sql |
In response to Robert Edwards : > A. Kretschmer wrote: > >In response to Robert Edwards : > >>Can anyone suggest a way that I can impose uniqueness on a and b when > >>c is NULL? > > > >Sure, use a functional index: > > > >test=# create table bobtest (a int, b int, c int); > >CREATE TABLE > >test=*# create unique index idx_bobtest on > >bobtest(a,b,coalesce(c::text,'NULL')); > >CREATE INDEX > >test=*# insert into bobtest (a, b) values (1, 4); > >INSERT 0 1 > >test=*# insert into bobtest (a, b, c) values (1, 4, NULL); > >ERROR: duplicate key value violates unique constraint "idx_bobtest" > >test=!# > > > > > >Regards, Andreas > > Beautiful! Btw: if your data doesn't contains 0 or negative, you can use coalesce(c,0) or coalesce(c,-1). It would be better for searching. Andreas -- Andreas Kretschmer Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header) GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net
В списке pgsql-sql по дате отправления: