On 21/03/12 17:58, Jaime Casanova wrote:
2012/3/21 will<[email protected]>:
Pregunta:
---------------------------------

Cómo puedo hacer que esta consulta

WITH RECURSIVE compuesta (Madre, Hijo, id) AS
            (
             SELECT madre, hijo,
                            ARRAY[0, --id_único] AS id_madre
             FROM componente_mc WHERE madre = A
              UNION ALL
              SELECT componente_mc.madre, componente_mc.hijo,
                            ARRAY[id_madre[2], --id_único],
                 FROM componente_mc, compuesta
             WHERE componente_mc.madre = compuesta.hijo
            )
            SELECT Hijo, Madre
            FROM compuesta

pueda generar un id único como identificador (donde dice --id_único), y que
no se repita en ningún padre?,

esconde la consulta en una función. al inicio de la función crea una
secuencia temporal (CREATE TEMP SEQUENCE), donde dice --id_unico pon
nextval('secuencia_temporal'), al terminar la funcion borra la
secuencia.

la razon para crear una ssecuencia temporal es que la funcion pueda
ejecutarse concurrentemente en diversas sesiones y el esconderlo en
una funcion es para esconder la implementacion de que estas usando una
secuencia.

/me corre a esconderse del monton de piedras que la gente se alista a lanzarle

Muchísimas gracias ! =D
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a