El día 30 de septiembre de 2008 11:01, MIGUEL CANCHAS
<[EMAIL PROTECTED]> escribió:
> -----Mensaje original-----
> De: Oswaldo Hernández [mailto:[EMAIL PROTECTED]
> Enviado el: Martes, 30 de Septiembre de 2008 06:46 a.m.
> Para: [email protected]
> Asunto: [pgsql-es-ayuda] Modificar WHERE en rule
>
>
> Hola,
>
> Tengo un caso un poco especial que me gustaria saber si es posible hacerlo
> utilizando rules o de
> cualquier otra forma. Intentaré explicarme:
>
> . Una tabla:
>
>     create table tabla (
>         a integer
>     );
>
> . Una vista sobre la tabla que 'prepara los datos'
>
>     create view v_tabla as
>         select
>             a,
>             prepara_datos(a) as a_preparado
>         from tabla;
>
> . Una aplicacion que monta automaticamente las consultas y realiza el
> siguiente query
>
>     select
>         a_preparado
>     from v_tabla
>     where
>         a_preparado = 10;
>
> El problema es que necesitaria que, mediante una rule, se modificara la
> clausula where para que esta
> se aplicara sobre el campo 'a' en vez de sobre el campo 'a_preparado'. Es
> decir, que al ejecutar el
> query anterior lo que realmente se ejecute sea:
>
>     select
>         a_preparado
>     from v_tabla
>         where a = 10;
>
> He estado leyendo la documentacion sobre rules, pero no veo que se pueda
> modificar el where para
> subtituir el campo sobre el que se realiza la condición.
>
> ¿Hay alguna posibilidad?
>
>
> Gracias.
> --
> *****************************************
> Oswaldo Hernández
> oswaldo (@) soft-com (.) es
> *****************************************
> PD:
> Antes de imprimir este mensaje, asegúrese de que es necesario.
> El medio ambiente está en nuestra mano.
> --
> TIP 3: Si encontraste la respuesta a tu problema, publícala, otros te lo
> agradecerán
> ******************************************
>
> Explicate un poco mejor :
> Dices :
> . Una aplicacion que monta automaticamente las consultas y realiza el
> siguiente query
>
>     select
>         a_preparado
>     from v_tabla
>     where
>         a_preparado = 10;
>
> Aplicación ? o un query en POSTGRESQL ?
>
> Cuando tengo ese tipo de dificultades prefiero hacerlo desde mi aplicación y
> no desde la BD.
> Miguel Canchas
> --
> TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
>               http://archives.postgresql.org/pgsql-es-ayuda
>

En los rules on se peude modificar la condicion. En el caso que tengas
que modificar seguido la condicion,
te recomiendo que crees una funcion.
--
TIP 5: ¿Has leído nuestro extenso FAQ?
         http://www.postgresql.org/docs/faqs.FAQ.html

Responder a