| 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: | Whole Thread | Raw Message | 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 |