Re: Unique index and unique constraint - Mailing list pgsql-sql

From Alvaro Herrera
Subject Re: Unique index and unique constraint
Date
Msg-id 20130726221937.GL14652@eldon.alvh.no-ip.org
Whole thread Raw
In response to Unique index and unique constraint  (JORGE MALDONADO <jorgemal1960@gmail.com>)
Responses Re: Unique index and unique constraint
Re: Unique index and unique constraint
List pgsql-sql
JORGE MALDONADO escribió:
> I guess I am understanding that it is possible to set a unique index or a
> unique constraint in a table, but I cannot fully understand the difference,
> even though I have Google some articles about it. I will very much
> appreciate any guidance.

The SQL standard does not mention indexes anywhere.  Therefore, in the
SQL standard world, the way to define uniqueness is by declaring an
unique constraint.  Using unique constraints instead of unique indexes
means your code stays more portable.  Unique constraints appear in
INFORMATION_SCHEMA.TABLE_CONSTRAINTS, whereas unique indexes do not.

PostgreSQL implements unique constraints by way of unique indexes (and
it's likely that all RDBMSs do likewise).  Also, the syntax to declare
unique indexes allows for more features than the unique constraints
syntax.  For example, you can have a unique index that covers only
portion of the table, based on a WHERE condition (a partial unique
index).  You can't do this with a constraint.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services



pgsql-sql by date:

Previous
From: Luca Vernini
Date:
Subject: Re: Unique index and unique constraint
Next
From: JORGE MALDONADO
Date:
Subject: Criteria to define indexes