From: | Oswaldo Hernández <listas(at)soft-com(dot)es> |
---|---|
To: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Schema propietario |
Date: | 2005-04-28 14:13:49 |
Message-ID: | 4270EF9D.5020808@soft-com.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Alvaro Herrera escribió:
> On Thu, Apr 28, 2005 at 12:09:57PM +0200, Oswaldo Hernández wrote:
>
>>Hola a todos,
>>
>>Cuando establezco un schema de trabajo con 'set current_schema' y desde
>>este llamo a una funcion que se encuentra en otro schema, dentro de esta
>> funcion current_schema() devuelve el shema establecido anteriormente.
>>
>>Hasta aqui perfecto.
>>
>>Pero, en ciertos casos me interesaria que esta funcion pudiera obtener
>>el schema donde esta instalada en vez del schema atual de trabajo.
>>
>>No encuentro ninguna funcion que me de este dato, ¿existe?
>
>
> Hum, puedes ser un poco mas explicito? De partida no me queda claro que
> es current_schema ... que version estas usando?
>
Postgresql 8.0.2
Disculpa, me he liado, queria decir que establezco el schema de trabajo
con 'set search_path to miesquemadetrabajo'.
La pregunta es si una funcion puede saber en que esquema esta instalada
(propietario de la funcion), puesto que 'selet current_schema()'
devuelve el primer esquema del search path.
Intento explicarme:
varios esquemas totalmente identicos, esquema a, esquema b, esquema c ...
En todos hay una funcion llamada 'actualizadatos' y una tabla llamada
'datos'.
La funcion 'actualiza_datos' modifica la tabla 'datos' con
update datos set ..........
Ahora bien:
. establezco 'set search_path to a'
. ejecuto a la funcion 'actualizadatos()'
. la tabla 'datos' del esquema 'a' ha sido actualizada.
. ahora, sin cambiar el search_path ejecuto 'b.actualizadatos()'
. la tabla 'datos' del esquema -> 'a' <- ha sido actualizada.
Lo que me gustaria conseguir es que la funcion actualizara la tabla de
su esquema, no la tabla que hay en el 'current_schema'
Esto se podria conseguir pasandole el esquema como parámetro a la
función, pero si esta funcion es un trigger esto se complica un poco.
No se si me he explicado bien.
Gracias.
--
*****************************************
Oswaldo Hernández
oswaldo(at)soft-com(dot)es
*****************************************
From | Date | Subject | |
---|---|---|---|
Next Message | Manuel Sugawara | 2005-04-28 14:45:32 | Re: Ayuda con Check (listo) |
Previous Message | Alvaro Herrera | 2005-04-28 13:08:19 | Re: Schema propietario |