Re: [Pgsql-ayuda] return new, return old, trigger

From: "Alfonso Andaur L(dot)" <postgresql(at)creasoluciones(dot)cl>
To: "sandrigo lezcano" <alkafes(at)yahoo(dot)com>
Cc: <pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx>
Subject: Re: [Pgsql-ayuda] return new, return old, trigger
Date: 2003-08-12 16:35:01
Message-ID: 001e01c360ef$af2e4040$0300000a@winme
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> algun consejo sencillo para ayudarme a establecer
> si mi retorno en una
>
> function-trigger sea new o old ???
>
> entiendo (creo... segun manual)
> NEW: variable holding (..???) para operacion INSERT/UPDATE
> en la nueva tupla ... ????
> OLD: variable holding (..???) para operacion UPDATE/DELETE
> en la ultima tupla (vieja) ..??

No estoy seguro de lo que estás preguntando .... pero te puedo decir algunas
cosas:

* Existen tres posibles acciones para un trigger: Insert, Update y Delete.

* Cuando usas un trigger con la opción Before, entonces old posee los datos
que se encuentran en la tabla y new los datos que se desean incluir.

* Cuando usas un trigger con la opción After, entonces old posee los datos
que tenia la tabla antes de la acción y new los datos que tiene ahora.

En tu código dice:

>
> CREATE TRIGGER tub_personas BEFORE UPDATE ON personas
> FOR EACH ROW EXECUTE PROCEDURE tub_personas();
>

por lo tanto, old contiene los valores actualmente en la tabla y new
contiene los valores que reemplazarán a los existentes si se cumplen todas
las validaciones corrspondientes.

Ahora, dependiendo de la lógica que pongas en el trigger (en la funcion para
PostgreSQL) tu podrías modificar los valores en new y retornar new o podrías
simplemente retornar old si deseas volver atrás la modificación.

Espero que estos comentarios te sirvan.

Alfonso Andaur L.
Crea Soluciones de Ingeniería Ltda.
"Creando soluciones de confianza"

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2003-08-12 17:06:38 [Pgsql-ayuda] Select diferente
Previous Message sandrigo lezcano 2003-08-12 15:39:56 [Pgsql-ayuda] return new, return old, trigger