Re: There can be only one

From: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: There can be only one
Date: 2015-10-11 11:28:09
Message-ID: 20151011112809.GA6083@tux
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Andreas Kretschmer <andreas(at)a-kretschmer(dot)de> wrote:

> Create a partial unique index on is_default.

as an example:

test=# CREATE TABLE payment_via (
id int PRIMARY KEY,
provider text NOT NULL,
keys hstore NOT NULL DEFAULT '',
is_default boolean NOT NULL DEFAULT FALSE
);
CREATE TABLE
test=*# create unique index idx_default on payment_via(is_default) where
is_default;
CREATE INDEX
test=*# insert into payment_via values (1, 'foo','', true);
INSERT 0 1
test=*# insert into payment_via values (2, 'bla','', false);
INSERT 0 1
test=*# insert into payment_via values (3, 'blubb','', true);
ERROR: duplicate key value violates unique constraint "idx_default"
DETAIL: Key (is_default)=(t) already exists.
test=*#

Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Victor Blomqvist 2015-10-12 01:15:17 Re: Drop or alter column under load give ERROR #42804 structure of query does not match function result type:
Previous Message Andreas Kretschmer 2015-10-11 09:14:27 Re: There can be only one