From: | AI Rumman <rummandba(at)gmail(dot)com> |
---|---|
To: | Jonathan Vanasco <postgres(at)2xlp(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: question about unique indexes |
Date: | 2010-05-10 04:52:21 |
Message-ID: | i2k2a7905441005092152z557d6e18k2f8d413e3c22affb@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Use unique index as follows:
create unique index unq_idx on table_name (coalesce(country_id,0),
coalesce(state_id,0), coalesce(city_id,0),coalesce(postal_code_id,0) );
On Mon, May 10, 2010 at 6:09 AM, Jonathan Vanasco <postgres(at)2xlp(dot)com> wrote:
> -- running pg 8.4
>
> i have a table defining geographic locations
>
> id
> lat
> long
> country_id not null
> state_id
> city_id
> postal_code_id
>
> i was given a unique index on
> (country_id, state_id, city_id, postal_code_id)
>
> the unique index isn't working as i'd expect it to. i was hoping someone
> could explain why:
>
> in the two records below, only country_id and state_id are assigned (
> aside from the serial )
>
> geographic_location_id | coordinates_latitude | coordinates_longitude |
> country_id | state_id | city_id | postal_code_id
>
> ------------------------+----------------------+-----------------------+------------+----------+---------+----------------
> 312 | | |
> 233 | 65 | |
> 443 | | |
> 233 | 65 | |
>
> i was under the expectation that the unique constraint would apply in this
> place.
>
> from the docs:
> When an index is declared unique, multiple table rows with equal
> indexed values are not allowed. Null values are not considered equal. A
> multicolumn unique index will only reject cases where all indexed columns
> are equal in multiple rows.
>
>
> --
> Sent via pgsql-general mailing list (pgsql-general(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>
From | Date | Subject | |
---|---|---|---|
Next Message | OisinJK | 2010-05-10 09:43:44 | Create View from command line |
Previous Message | Boyd, Craig | 2010-05-10 04:02:28 | Re: Query that produces index information for a Table |