RE: Duda con trigger

From: "Mario Soto Cordones" <masc68(at)gmail(dot)com>
To: "'Jaime Casanova'" <jaime(at)2ndquadrant(dot)com>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Duda con trigger
Date: 2011-04-19 20:42:31
Message-ID: 00c701cbfed2$50a59fd0$f1f0df70$@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola en efecto quiero actualizar el mismo registro.

Trate de crearla como dices y no me deja crear la función

CREATE FUNCTION "act_estala" () RETURNS trigger AS
$body$
BEGIN

UPDATE bermann_pgps_estala
SET
NEW.ala_anterior = OLD.ala_actual
where OLD.sq_vehiculo = OLD.sq_vehiculo;
RETURN NEW;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER;

-----Mensaje original-----
De: jcasanov(at)systemguards(dot)com(dot)ec [mailto:jcasanov(at)systemguards(dot)com(dot)ec] En nombre de Jaime Casanova
Enviado el: martes, 19 de abril de 2011 15:30
Para: Mario Soto Cordones
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Duda con trigger

2011/4/19 Mario Soto Cordones <masc68(at)gmail(dot)com>:
>
> UPDATE estala
> SET ala_anterior = OLD.ala_actual
> where sq_vehiculo = OLD.sq_vehiculo;
>

deja ver. el trigger se dispara al ejecutar UPDATE sobre la tabla estala, verdad? y que crees que pasara al ejecutar otro UPDATE sobre la misma tabla dentro del trigger que ejecuto el UPDATE?

la forma correcta de hacer lo que quieres es (esto es asumiendo que quieres actualizar el mismo registro que se esta grabando):

BEGIN
new.ala_anterior = old.ala_actual;

RETURN NEW;
END;

--
Jaime Casanova www.2ndQuadrant.com Professional PostgreSQL: Soporte y capacitación de PostgreSQL

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario Soto Cordones 2011-04-19 21:24:40 RE: Duda con trigger
Previous Message Mario Soto Cordones 2011-04-19 20:17:50 RE: Duda con trigger