Re: Triggers con argumentos

From: Jaime Casanova <systemguards(at)yahoo(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Triggers con argumentos
Date: 2004-11-05 23:07:53
Message-ID: 20041105230753.7635.qmail@web50004.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--- "Mario A. Soto Cordones"
<mario_soto(at)venezolanadeavaluos(dot)com> escribió:
> Hola Alvaro, lo que quiero hacer es lo siguiente:
>
> Actualizar 1 tabla a partir de otra tabla, pero
> estas no tienen relacion
> entre si, por lo que no puedo utilizar referencia de
> integridad, sino
> fuera sencillo porque le creo una FK y gatillo en
> evento ON UPDATE. Pero
> este no es mi caso:
>
> Inicialmente la función gatillada por el trigger es
> esta.
>
> CREATE OR REPLACE FUNCTION funcion_act_tabla2" ()
> RETURNS trigger AS'
> declare
> QRY varchar := '''';
> begin
> QRY := ''update tabla2 set tabla2.nombre = '''' ||
> quote_literal(NEW.nb_nombre) || ''''
> where tabla2.empresa= tabla1.co_empresa and
> tabla2.filial =
> tabla1.co_filial and tabla2.codigo =
> tabla1.nu_activo_fijo'';
>
> execute QRY;
> return NEW;
> end;
> 'LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT
> SECURITY INVOKER;
>
>

Hasta aqui no veo para que necesitas los parametros en
el trigger.

>
> En sintesis lo que quiero hacer es que cuando
> actualice la tabla1, se
> actualicen algunos campos
> de la tabla 2.
>

Esa es la idea de crear un trigger.

>
> CREATE TRIGGER trigger_fk_pns_ug
> AFTER INSERT OR UPDATE ON t_pns
> FOR EACH ROW
> EXECUTE PROCEDURE func_fk_temporal_trigger
> ('t_pns', 'ug', 't_ug', 'id');
>
>
> CREATE TRIGGER trigger_fk_ug_pns
> AFTER DELETE OR UPDATE ON t_ug
> FOR EACH ROW
> EXECUTE PROCEDURE func_fk_temporal_trigger
> ('t_pns', 'ug', 't_ug', 'id');
>
>
> CREATE TRIGGER trigger_fk_pnspar_pns
> AFTER INSERT OR UPDATE ON t_pnspar
> FOR EACH ROW
> EXECUTE PROCEDURE func_fk_temporal_trigger
> ('t_pnspar', 'pns',
> 't_pns', 'id');
>
>
> CREATE TRIGGER trigger_fk_pnspar_par
> AFTER DELETE OR UPDATE ON t_pnspar
> FOR EACH ROW
> EXECUTE PROCEDURE func_fk_temporal_trigger
> ('t_pnspar', 'par',
> 't_par', 'id');
>

Fijate que en todos los casos los paramtros son una
cadena de caracteres constante, no son valores que van
a variar dinamicamente.

Atentamente,
Jaime Casanova

_________________________________________________________
Do You Yahoo!?
Información de Estados Unidos y América Latina, en Yahoo! Noticias.
Visítanos en http://noticias.espanol.yahoo.com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Carlos Chavez Herrera 2004-11-06 01:04:14 Re: conexiones
Previous Message Mario A. Soto Cordones 2004-11-05 20:16:24 Consulta