Re: indice, unicidad

From: Norma Cordero Sanchez <norma(at)vico(dot)fciencias(dot)unam(dot)mx>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: indice, unicidad
Date: 1998-05-21 20:08:17
Message-ID: Pine.LNX.3.95.980521144320.1621G-100000@vico.fciencias.unam.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Wed, 20 May 1998, Bruno Unna wrote:

> 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?
> > ...

> Lo nico que se me ocurre por el momento es el uso de una caracterstica
> llamada 'constraint' durante la creacin 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 insercin/actualizacin implica la revisin
> 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 implcitamente al crear la tabla,
> y desentenderte de l:

Muchas gracias Bruno te agradezco tu respuesta.
Nada de malo tienen los indices, lo que sucede es que una de mis columnas
debe de mantener la unicidad, pero no es la llave primaria, y en realidad
muy pocas veces voy a necesitar consultar por esa columna, es por eso mi
pregunta, ademas segun he entendido, el mantenimiento de los indices que
hace el sistema, toma tiempo y espacio en disco, es por eso que queria
evitarlos en esta columna, si era posible, pero por lo que me contestas
me parece que no.

> create table alumnos
> (cuenta int4, nombre char(60), primary key (cuenta));
> lo cual implica automticamente la unicidad de 'cuenta',
> as como su no-nulidad.
>

Como tengo aun la version 6.2.1, aun no voy a poder utilizar primary key

> Suerte, saludos.
>
> P.D.: si alguien averigua qu estoy haciendo mal con los
> constraints, le voy a agradecer mucho que me informe. :)

Pues yo he utilizado algo como esto, pero no se si te refieras a lo mismo:
CREATE TABLE ejemplo (
atrib1 int4 )
CONSTRAINT ejemplo_cond CHECK ( atrib1 > 0 ) AND ( atrib1 < 20 )
;

NORMA.

> --
> +------------------------------------------------------+
> | 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-21 21:54:33 Re: indice, unicidad
Previous Message Jose Alberto Patino Limon 1998-05-21 17:16:47 Re: indice, unicidad