Re: Expresiones en Primary Key

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Oswaldo Hernández <listas(at)soft-com(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Expresiones en Primary Key
Date: 2005-04-28 15:03:30
Message-ID: c2d9e70e050428080340064773@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 4/28/05, Oswaldo Hernández <listas(at)soft-com(dot)es> wrote:
> Jaime Casanova escribió:
> > On 4/26/05, Oswaldo Hernández <listas(at)soft-com(dot)es> wrote:
> >
> >>
> >>Estoy haciendo pruebas con indices utilizando expresiones en vez de una
> >>lista de campos.
> >>
> >
> > A que te refieres con usar expresiones como clave? una suma por ejemplo?
>
> Si.
>
> La sentencia 'create index' permite que el indice este formado por una
> expresion en vez de un campo simple.
>
> Por ejemplo, si tienes en una tabla precios y descuentos, pero las
> busquedas las realizas por precios netos puedes tener el indice con
> estos calculados:
>
> create table precios (
> precio numeric(10,2),
> porcentaje_dto numeric(3,2)
> );
> create index preciosnetos on precios
> (precio - (precio * porcentaje_dto / 100));
>
> En teoria, esto permite que el siguiente select realice la busqueda
> utilizando el indice, con el consiguiente aumento de velocidad:
>
> select *
> from precios
> where (precio - (precio * porcentaje_dto / 100)) = 100;
>
> (Corregirme si estoy equivocado)
>
Es correcto.

Y de alli el problema con los PK: 5 +3 = 4+4 (no se manteniene
unicidad, lo cual es requisito esencial para un PK)

como te aseguras que la expresion no te de valores duplicados? como
identificarias de forma unica un registro?
con los indices normales, claro esta, no hay problema y de hecho puede
ser util como muestra tu ejemplo

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2005-04-28 15:16:43 Re: manejadores
Previous Message Julio Rivero 2005-04-28 15:01:00 Tips PG???