Re: Secuencias (Consulta) II

Lists: pgsql-es-ayuda
From: mmiranda(at)americatel(dot)com(dot)sv
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Secuencias (Consulta) II
Date: 2005-05-11 17:52:04
Message-ID: 76E0DAA32C39D711B6EC0002B364A6FA044EC1D8@amsal01exc01.americatel.com.sv
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola, aprovechando que se esta tocando el tema, como puedo hacer varias
secuencias en una mismo columna?, mejor dicho una secuencia que dependa de
otra columna de la tabla, por ejemplo la tabla tiene la siguiente estructura


clientes (
id serial,
pais varchar,
cliente varchar)

El id es el identificador unico de ese cada cliente, pero quiero que sea una
secuencua diferente atada a cada pais, o sea que habra id de cliente 15, 20,
5000, etc en cada pais.

Es posible?


From: Alvaro Herrera <alvherre(at)surnet(dot)cl>
To: mmiranda(at)americatel(dot)com(dot)sv
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Secuencias (Consulta) II
Date: 2005-05-11 20:55:31
Message-ID: 20050511205531.GC10281@surnet.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Wed, May 11, 2005 at 11:52:04AM -0600, mmiranda(at)americatel(dot)com(dot)sv wrote:
> Hola, aprovechando que se esta tocando el tema, como puedo hacer varias
> secuencias en una mismo columna?, mejor dicho una secuencia que dependa de
> otra columna de la tabla, por ejemplo la tabla tiene la siguiente estructura
>
>
> clientes (
> id serial,
> pais varchar,
> cliente varchar)
>
> El id es el identificador unico de ese cada cliente, pero quiero que sea una
> secuencua diferente atada a cada pais, o sea que habra id de cliente 15, 20,
> 5000, etc en cada pais.
>
> Es posible?

Es posible, pero ya no puedes usar una secuencia comun y corriente.
Sospecho que tendrias que usar un trigger BEFORE INSERT para modificar
el id durante la insercion.

En todo caso no si es buena idea dejar que los IDs se traslapen ...

--
Alvaro Herrera (<alvherre[a]surnet.cl>)
"The important things in the world are problems with society that we don't
understand at all. The machines will become more complicated but they won't
be more complicated than the societies that run them." (Freeman Dyson)


From: "Jose Ayala - INCALPACA TPX" <jayala(at)incalpaca(dot)com>
To: <mmiranda(at)americatel(dot)com(dot)sv>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Secuencias (Consulta) II
Date: 2005-05-11 20:55:43
Message-ID: 023301c5566b$cd58b780$140b0a09@sistem03
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El default de tu campo ID deberia ser asignado en un trigger.. el cual llame una funcion que extraiga el valor de un sequence diferente dependiendo del valor ingresado en tu campo pais.

Slds

Jose J. Ayala Pineda
Sistemas e Informatica
Incalpaca TPX S.A.
www.incalpaca.com

----- Original Message -----
From: mmiranda(at)americatel(dot)com(dot)sv
To: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Wednesday, May 11, 2005 12:52 PM
Subject: [pgsql-es-ayuda] Secuencias (Consulta) II

Hola, aprovechando que se esta tocando el tema, como puedo hacer varias secuencias en una mismo columna?, mejor dicho una secuencia que dependa de otra columna de la tabla, por ejemplo la tabla tiene la siguiente estructura

clientes (
id serial,
pais varchar,
cliente varchar)

El id es el identificador unico de ese cada cliente, pero quiero que sea una secuencua diferente atada a cada pais, o sea que habra id de cliente 15, 20, 5000, etc en cada pais.

Es posible?