puedes utilizar la funcionalidad tengo entendida que es del postgresql 9.0 de
trigger por columnas.
saludos
----- Mensaje original -----
De: "Lazaro Rubén García Martinez" <[email protected]>
Para: "Gaston Rider" <[email protected]>, "Postgres Lista"
<[email protected]>
Enviados: Jueves, 2 de Junio 2011 12:47:13 (GMT-0500) Auto-Detected
Asunto: RE: [pgsql-es-ayuda] Trigger ayuda con funcion
utiliza el disparador en modo for each row before update, para que te ejecute
la sentencia antes que actualices el registro, entonces con OLD obtienes el
atributo de la tabla antes de modificar y con NEW el nuevo valor.
Aqui te pongo un ejemplo para que puedas realizar lo que necesitas:
CREATE TABLE "public"."nuevo" (
"id" SERIAL,
"nombre" VARCHAR(20),
CONSTRAINT "nuevo_pkey" PRIMARY KEY("id")
) WITH OIDS;
CREATE TABLE "public"."historico" (
"id" SERIAL,
"nombre_viejo" VARCHAR(20),
"nombre_nuevo" VARCHAR,
CONSTRAINT "historico_pkey" PRIMARY KEY("id")
) WITH OIDS;
CREATE OR REPLACE FUNCTION "public"."funAntesUpdate" (
)
RETURNS trigger AS
$body$
DECLARE
BEGIN
INSERT INTO historico(nombre_viejo, nombre_nuevo)
VALUES(OLD.nombre, NEW.nombre);
RETURN NEW;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
CREATE TRIGGER "trigger1" BEFORE UPDATE
ON "public"."nuevo" FOR EACH ROW
EXECUTE PROCEDURE "public"."funAntesUpdate"();
Para mas información puedes consultar la siguiente direccion:
http://www.postgresql.org.es/node/301
Saludos.
________________________________________
De: [email protected] [[email protected]]
En nombre de Gaston Rider [[email protected]]
Enviado el: jueves, 02 de junio de 2011 9:12
Para: Postgres Lista
Asunto: [pgsql-es-ayuda] Trigger ayuda con funcion
Hola. Necesitarìa ayuda con una funcion... disparador en update.
necesito guardar en una tabla xxxx los campos que fueron modificados en la
tabla que disaparò el trigger..
en principio necesitaria la manera de recorrer "los campos" de la tabla en
cuestion, compararlos con
los valores nuevos, y en el caso de que el valor se modificó... guardar esto...
no sè si se entiende???
muchas gracias
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda