Re: Como hacer un for dentro de un trigger

From: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
To: pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Como hacer un for dentro de un trigger
Date: 2009-02-10 15:44:18
Message-ID: f205bb120902100744h92c1f7aj1b64956d619564a7@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El día 10 de febrero de 2009 9:16, SILVANA IOVINO
<silvana_iovino(at)yahoo(dot)com(dot)ar> escribió:
> La version de postgres que estoy usando es PostgreSQL 8.2.4, probe en
> sacarle la etiqueta a descripcion y me hace el mismo problema.
> Te cuento con mas detalle que es lo que tengo que hacer: tengo un trigger
> before update sobre una tabla A, que lo que hace es actualizar una columna y
> a su vez tengo otro trigger before update sobre otra tabla B, que lo que
> hace es actualizar una columna con datos de su propia tabla y con datos de
> la tabla A. El problema surge cuando se realiza una actualizacion sobre una
> columna de la tabla A, lo que se hace es disparar el trigger que actua sobre
> la tabla A y a su vez tengo que hacer disparar el trigger que actua sobre la
> tabla B, esto ultimo como lo hago??. La idea que se me ocurrio fue hacer un
> update sobre la tabla B, dentro del trigger que actua sobre la tabla A, se
> te ocurre alguna idea de como hacerlo???
> Espero tu ayuda
>

Uff...
el trigger se ejecuta luego de una determinada acción. lo que podes
hacer es una funcion que haga esa accion en ambas tablas (se ejecutarian
ambas disparadores).
disparadores dentro de disparadores no creo que se pueda.
La otra es dos disparadores que ejecuten la misma función (que hara
lo que queres en las tablas A y B)

> --- El lun 9-feb-09, Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com> escribió:
>
> De: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
> Asunto: Re: [pgsql-es-ayuda] Como hacer un for dentro de un trigger
> Para: silvana_iovino(at)yahoo(dot)com(dot)ar, "pgsql-es-ayuda"
> <pgsql-es-ayuda(at)postgresql(dot)org>
> Fecha: lunes, 9 de febrero de 2009, 2:05 pm
>
> El día 9 de febrero de 2009 14:02, SILVANA IOVINO
> <silvana_iovino(at)yahoo(dot)com(dot)ar> escribió:
>> De cual opcion me estas diciendo? sacarle el for? si es asi le saque el
> for
>> y el loop y me hace lo mismo.
>> Otra solucion?
>>
>
> no, sacarle la etiqueta a descripcion en el select.
> que version de postgres estas utilizando exactamente?
>
>> --- El lun 9-feb-09, Emanuel Calvo Franco
> <postgres(dot)arg(at)gmail(dot)com>
> escribió:
>>
>> De: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
>> Asunto: Re: [pgsql-es-ayuda] Como hacer un for dentro de un trigger
>> Para: silvana_iovino(at)yahoo(dot)com(dot)ar, "pgsql-es-ayuda"
>> <pgsql-es-ayuda(at)postgresql(dot)org>
>> Fecha: lunes, 9 de febrero de 2009, 12:57 pm
>>
>> El día 9 de febrero de 2009 13:49, SILVANA IOVINO
>> <silvana_iovino(at)yahoo(dot)com(dot)ar> escribió:
>>> Si los 8 registros son distintos, es como que haria falta algo que se
>> mueva
>>> al siguiente registro. Existe algo asi??
>>>
>>
>> si, pero no
>> seria necesario en un for, sino en un cursor.
>> cambiaste la opcion que te di?
>>
>>
>>> --- El lun 9-feb-09, Emanuel Calvo Franco
> <postgres(dot)arg(at)gmail(dot)com>
>> escribió:
>>>
>>> De: Emanuel Calvo Franco
> <postgres(dot)arg(at)gmail(dot)com>
>>> Asunto: Re: [pgsql-es-ayuda] Como hacer un for dentro de un trigger
>>> Para: silvana_iovino(at)yahoo(dot)com(dot)ar, "pgsql-es-ayuda"
>>> <pgsql-es-ayuda(at)postgresql(dot)org>
>>> Fecha: lunes, 9 de febrero de 2009, 12:47 pm
>>>
>>> El día 9 de febrero de 2009 13:31, SILVANA IOVINO
>>> <silvana_iovino(at)yahoo(dot)com(dot)ar> escribió:
>>>> Logre resolver el error pero ahora el problema que tengo es que no
>> itera
>>>> sobre los valores que tiene el record mviews, lo estoy usando
>>> asi:
>>>>
>>>> FOR mviews IN SELECT items_menu.descripcion from items_menu where
>>>> fk_id_familia =1 LOOP
>>>> titulobusquedaItem:=mviews.descripcion
>> || '-' ||
>>> new.titulo_busqueda;
>>>> UPDATE items_menu SET titulo_busqueda = titulobusquedaItem
> WHERE
>>>>
> items_menu.fk_id_familia = new.id_familia;
>>>> END LOOP;
>>>>
>>>
>>> FOR .... SELECT descripcion ....
>>> (sacandole la etiqueta previa).
>>>
>>> Los 8 registros tienen valores distintos calculo...no?
>>>
>>>
>>>
>>>
>>>> El error lo veo que siempre me toma a mviews.descripcion el mismo
>> valor.
>>>> Como lo puedo resolver??
>>>>
>>>>
>>>> --- El lun 9-feb-09, Emanuel Calvo Franco
>> <postgres(dot)arg(at)gmail(dot)com>
>>> escribió:
>>>>
>>>> De: Emanuel Calvo Franco <postgres(dot)arg(at)gmail(dot)com>
>>>> Asunto: Re: [pgsql-es-ayuda] Como hacer un for dentro de un
> trigger
>>>> Para: silvana_iovino(at)yahoo(dot)com(dot)ar, "pgsql-es-ayuda"
>>>>
>>> <pgsql-es-ayuda(at)postgresql(dot)org>
>>>> Fecha:
>> lunes, 9 de febrero
> de 2009, 12:20 pm
>>>>
>>>> El día 9 de febrero de 2009 13:06, SILVANA IOVINO
>>>> <silvana_iovino(at)yahoo(dot)com(dot)ar> escribió:
>>>>> Lo que quiero es hacer un for sobre un conjunto de registro
> que me
>> los
>>> da
>>>> el
>>>>> select que escribi.
>>>>> Probe algo asi pero me tira un error:
>>>>
>>>> pega el error que te tira...
>>>>
>>>>> declare mviews record;
>>>>>
>>>>> FOR mviews IN SELECT * from items_menu where fk_id_familia =1
> LOOP
>>>>> titulobusquedaItem:=mviews.titulo_busqueda || '-'
> ||
>>>>> new.titulo_busqueda;
>>>>> UPDATE items_menu SET titulo_busqueda =
> titulobusquedaItem
>> WHERE
>>>>> items_menu.fk_id_familia = new.id_familia;
>>>>> END
> LOOP;
>>>>>
>>>>> Alguna idea??
>>>>>
>>>>
>>>>
>>>>
>> --
>>>> Emanuel Calvo Franco
>>>>
>>>>
>>> Sumate al ARPUG !
>>>> (www.postgres-arg.org -
>>>> www.arpug.com.ar)
>>>> ArPUG / AOSUG Member
>>>> Postgresql Support & Admin
>>>>
>>>> ________________________________
>>>> Yahoo! Cocina
>>>> Recetas prácticas y comida saludable
>>>> Visitá http://ar.mujer.yahoo.com/cocina/
>>>
>>>
>>>
>>> --
>>> Emanuel Calvo Franco
>>> Sumate al ARPUG !
>>> (www.postgres-arg.org -
>>> www.arpug.com.ar)
>>> ArPUG / AOSUG Member
>>> Postgresql Support & Admin
>>>
>>>
> ________________________________
>>> Yahoo! Cocina
>>> Recetas prácticas y comida saludable
>>> Visitá http://ar.mujer.yahoo.com/cocina/
>>
>>
>>
>> --
>> Emanuel Calvo Franco
>> Sumate al ARPUG !
>>
>> (www.postgres-arg.org -
>> www.arpug.com.ar)
>> ArPUG / AOSUG Member
>> Postgresql Support & Admin
>>
>> ________________________________
>> Yahoo! Cocina
>> Recetas prácticas y comida saludable
>> Visitá http://ar.mujer.yahoo.com/cocina/
>
>
>
> --
> Emanuel Calvo Franco
> Sumate al ARPUG !
> (www.postgres-arg.org -
> www.arpug.com.ar)
> ArPUG / AOSUG Member
> Postgresql Support & Admin
>
> ________________________________
> Yahoo! Cocina
> Recetas prácticas y comida saludable
> Visitá http://ar.mujer.yahoo.com/cocina/

--
Emanuel Calvo Franco
Sumate al ARPUG !
(www.postgres-arg.org -
www.arpug.com.ar)
ArPUG / AOSUG Member
Postgresql Support & Admin

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2009-02-10 16:34:51 Re: Ayuda con group by
Previous Message sTyler 2009-02-10 15:17:54 Re: Obtener un numero unico de operacion