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 |
+------------------------------------------------------+
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 |