Manejo de Trigger con TG_RELNAME urgente

From: Javier Bermúdez Tito <javier_bt(at)hotmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Manejo de Trigger con TG_RELNAME urgente
Date: 2006-07-05 16:02:44
Message-ID: BAY116-F15EEFF46912302265F156185760@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola lista, bueno tengo un problemilla que se me esta presentando en el
trabajo y necesito darle una solución urgente, haber si alguien tuvo esta
necesidad me puede ayudar gracias.

Haber necesito realizar algo asi como una auditoria de una tabla osea saber
quien modifico un campo de una tabla x; ahora bien se que debo ejecutar un
trigger para que se ejecute automaticamente, tambien se que puedo saber si
estoy haciendo un UPDATE, INSERT ó DELETE con TG_OP puedo saber estos
valores, tambien con TG_RELNAME puedo saber e nombre de la tabla, pero lo
que necesito ahora es saber exactamente que campo de mi tabla fue
actualizado su valor y necesito registrar solo los valores de algunos
campos, como podria recuperar esa informacion saber que campo o campos
fueron actualizados

Ejemplo

Tabla : SOCIOS
Campos : idsocio, nombres, apellidos, direccion, telefono, sexo, f_nac

ahora bien hacer un trigger que se ejecute en mi tabla SOCIOS AFTER UPDATE
y solo quiero guardar los cambios por ejemplo de los campos direccion,
telefono, pero no de todos a la vez, porque no se si cambiaran los tres
campos a la vez o solo uno de ellos, pero cualquiera de estos campos si
cambio algun dato registrarlo en una tabla maso menos asi

Tabla : AUDIT
Campos idaudit, nom_table, nom_campo, valor_antiguo, valor_nuevo,
fecha_cambio, codigo_usuario

en esta tabla debo registrar los cambios de cualquier campo de entre esos
dos campos mencionados antes

idauidt, nom_table, nom_campo, valor_antiguo, valor_nuevo, fecha_cambio,
codigo_usuario
00001 socios telefono 2552145 4931682 04/07/2006
00122
00002 socios direccion av. peru #12 jr. rios #15
05/07/2006 00120
00003 emple referencia altura parque altura ovalo
05/07/2006 00132

mediante el codigo_usuario yo identifico que usuario y cuando realizo el
cambio de esos datos en cualquiera de las tablas a las que asocie un trigger
con esas caracteristicas, pero lo que me intresa mucho es saber que campo
fue actualizado ese es el punto espero haberme dejado entender gracias de
antemano espero su respuesta gracias

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Marco Castillo 2006-07-05 16:19:04 No utilizar password en pg_dump
Previous Message Juanky Moral 2006-07-05 14:36:54 Re: ayuda fechas