RE: Serial / Secuencia

From: MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe>
To: 'Guillermo Muñoz' <guillermo(dot)munoz(at)grupotekne(dot)com(dot)ar>, Juan Martínez <jeugenio(at)umcervantes(dot)cl>
Cc: MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe>, 'Alvaro Herrera' <alvherre(at)commandprompt(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: Serial / Secuencia
Date: 2007-10-25 15:34:54
Message-ID: 410117BB01F4D611B73A00010331DD2403B5823E@tsnt.tsr.com.pe
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Esta mas claro, toda esta parte la estoy haciendo en la BD, nada que ver con
el lenguaje que estoy usando(VFP 9) .

Gracias muchas gracias.

Ahora si la agarre y esta mas simple de entender

Gracias

PD, si me pierdo (otra vez), les consulto

Miguel

-----Mensaje original-----
De: Guillermo Muñoz [mailto:guillermo(dot)munoz(at)grupotekne(dot)com(dot)ar]
Enviado el: Jueves, 25 de Octubre de 2007 09:02 a.m.
Para: Juan Martínez
CC: MIGUEL CANCHAS; 'Alvaro Herrera'; pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Serial / Secuencia

Quoting Juan Martínez <jeugenio(at)umcervantes(dot)cl>:

> MIGUEL CANCHAS escribió:
> > Alvaro Herrera escribio:
>>> MIGUEL CANCHAS escribió:
>>>>
>>>> Entonces tengo que crear UNA SECUENCIA DISTINTA por cada tabla que
deseo
>>>> que use un valor secuencial ???
>>>
>>> No necesariamente, pero eso es lo que generalmente se hace.
> >
>> No necesariamente ? entonces de que otra manera se puede lograr lo mismo
?
>> si bien en mis tablas necesito un numero para poder realizar las
relaciones
>> con otras tablas .
>
> A ver...
>
> => create table a (a1 serial);
> NOTICE: CREATE TABLE creara una secuencia implicita 'a_a1_seq' para
> la columna serial 'a.a1'
> CREATE TABLE
>
> => \d a
> Tabla «pg_temp_1.a»
> Columna | Tipo | Modificadores
> ---------+---------+------------------------------------------------
> a1 | integer | not null default nextval('a_a1_seq'::regclass)
>
> Entonces la secuencia se llama 'a_a1_seq'. Luego creamos otra tabla
> que use la misma secuencia:
>
> => create table b (b1 integer not null default nextval('a_a1_seq'));
> CREATE TABLE
>
> y listo!

mmmm, me parece que esta no es la solucion buscada.
esta bien que la secuencia este en la primer tabla, pero no en la segunda.
por
que al hacer el insert en la segunda tabla van a quedar con diferente ID y
lo
que esta buscando es poder crear una relacion (FK) Cabecera - Detalle (Por
lo
que entendi del primer mail)
deberia ser (Juan:te tomo el ejemplo)

Tabla A
Columna | Tipo | Modificadores
--------+---------+------------------------------------------------
a1 | integer | not null default nextval('a_a1_seq'::regclass)

Tabla B
Columna | Tipo | Modificadores
--------+---------+------------------------------------------------
b1 | integer | not null

inmediatamente de insertado el dato en la tabla A, haces select
currval('a_a1_seq');

y este valor lo insertas en la tabla B. o lo devolves para ser usado en otra
parte y no perderlo.

por eso te pedia que postearas la funcion, para ver que estas haciendo.
Lo estas programando con algun lenguaje o desde funciones de postgres?

Saludos
Guillermo Muñoz

>
> --
> Juan Martinez G. Mac Iver # 370
> Departamento de Informatica 4997900 - 4997934
> Universidad Miguel de Cervantes Santiago - Chile
> http://download.bblug.usla.org.ar/netiquette.png
> --
> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te
> lo agradecerán
>

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Martínez 2007-10-25 15:41:07 Re: Serial / Secuencia
Previous Message Alvaro Herrera 2007-10-25 15:34:27 Re: Serial / Secuencia