Re: UNIQUE constraints on function results

From: Emanuele Rocca <ema(at)linux(dot)it>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: UNIQUE constraints on function results
Date: 2006-10-05 12:21:11
Message-ID: 20061005122111.GA12864@darkmoon.home
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello Markus,

* Markus Schiltknecht <markus(at)bluegap(dot)ch>, [2006-10-05 11:16 +0200]:
> I've been trying to add a unique constraint on a row and a function
> result of a row. I.e.:
>
> CREATE TABLE test (
> id SERIAL PRIMARY KEY,
> t1 TEXT NOT NULL,
> t2 TEXT NOT NULL,
> UNIQUE (t1, lower(t2)));
>
> That fails with a syntax error (on 8.2beta1). While UNIQUE(t1, t2) works
> like a charm, it's not exactly what I want.
>
> I can easily create an index for my needs [1], why can I not add such a
> unique constraint?

You can create a unique index.

CREATE UNIQUE INDEX idx_name ON test (t1, lower(t2));

INSERT INTO test (t1, t2) VALUES ('some text', 'Other Text');

Trying to insert the following row:

INSERT INTO test (t1, t2) VALUES ('some text', 'other text');

you'll get a duplicate key error.

ciao,
ema

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message stevegy 2006-10-05 12:30:29 Re: &nbsp;&nbsp;&nbsp;&nbsp;&
Previous Message Peter Bauer 2006-10-05 11:55:25 Re: Major Performance decrease after some hours