Re: indice, unicidad

From: Bruno Unna <bruno(at)iac(dot)com(dot)mx>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: indice, unicidad
Date: 1998-05-20 22:07:44
Message-ID: 35635430.5F9F14D@iac.com.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Norma Cordero Sanchez wrote:
>
> Hola, que tal.
>
> Tengo una dudota: como puedo dar unicidad a una columna, sin tener
> que hacer un indice en ella? hasta donde he checado se que al crear un
> indice se puede tener la opcion de que sea unico tambien:
>
> create [unique] index <indexname> on <class_name> [using <access_method>]
> ( <attr1> [<type_class1>] [,...] | <funcname>(<attr1>,...) [<type_class>]
> );
>
> pero como le hago si solo quiero que sean "unicos" los valores, pero no
> indexar?

Lo único que se me ocurre por el momento es el uso de una característica
llamada 'constraint' durante la creación de la tabla. Sintaxis:
create table <class_name>
(<attr1> <type1> [default <expression>] [not null] [,...])
[inherits (<class_name1>,...<class_nameN>)
[[constraint <name>] check <condition> [,...] ]
;
pero eso tiene dos problemas:
a) es ineficiente; cada inserción/actualización implica la revisión
de la condicion por parte del manejador;
b) no funciona (al menos, yo no he logrado sacar a psql de
'ERROR: parser: parse error at or near "constraint"' cuando he
querido jugar con los constraints). :)

En todo caso, yo quisiera preguntarte, Norma: ¿qué tienen de malo
los índices? Puedes crear uno implícitamente al crear la tabla,
y desentenderte de él:
create table alumnos
(cuenta int4, nombre char(60), primary key (cuenta));
lo cual implica automáticamente la unicidad de 'cuenta',
así como su no-nulidad.

Suerte, saludos.

P.D.: si alguien averigua qué estoy haciendo mal con los
constraints, le voy a agradecer mucho que me informe. :)
--
+------------------------------------------------------+
| Bruno Unna |
| bruno(at)sac(dot)com(dot)mx Pub.key available ICQ:1858580 |
+------------------------------------------------------+

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Bruno Unna 1998-05-20 22:16:03 Re: FATAL: StreamServerPort: bind() failed: errno=13
Previous Message Norma Cordero Sanchez 1998-05-20 21:26:29 indice, unicidad