> Sure -- use CREATE UNIQUE INDEX.
> 
> alvherre=# create function singleton(int) returns int immutable language sql 
as $$ select 1 $$;
> CREATE FUNCTION
> alvherre=# create table singleton (a int);
> CREATE TABLE
> alvherre=# create unique index only_one on singleton (singleton(a));
> CREATE INDEX
> alvherre=# insert into singleton values (3);
> INSERT 0 1
> alvherre=# insert into singleton values (6);
> ERROR:  llave duplicada viola restricción de unicidad «only_one»

And it's possible to make this check deferrable? Uniqueness will be validated 
on commit or SET ALL CONSTRAINTS IMMEDIATE command?

> 
> 
> The reason it's not supported in table_constraint, IIUC, is that the
> standard doesn't allow it, and that syntax is standards-mandated.
> CREATE INDEX, however, is not.

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to