On 21/03/12 17:58, Jaime Casanova wrote:
> 2012/3/21 will<wrbutros(at)rizoma(dot)cl>:
>
>> 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