| From: | roger gue <rockobop(at)gmail(dot)com> | 
|---|---|
| To: | pgsql-es-ayuda(at)postgresql(dot)org | 
| Subject: | Ayuda con logs | 
| Date: | 2005-06-13 20:02:49 | 
| Message-ID: | bd5aaa8a050613130265c48ca8@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-es-ayuda | 
holas a todos la idea es tratar de  guardar el log en tres distintas
tablas pero me da errores en los if no se por q gracias espero su
colaboracion y me ayuden a desifrar por q esta mal mi codigo
CREATE FUNCTION bitacora_actividad () RETURNS TRIGGER AS '
DECLARE
       
	 	fecha_y_hora  	timestamp;
	 	usuario_actual  name;
	 	tabla  		text;
	 	cadena   	text;
		val_ant	 	text;
		val_nv	  	text;
 
BEGIN
--inicializar valores
SELECT current_timestamp INTO fecha_y_hora;
	tabla := TG_RELNAME;	
	
	if (cadena=='INSERT') THEN
	
	
		val_nv := 'NEW.cod_actividad'
||'NEW.nombre_actividad'||'NEW.fecha_ini'||'NEW.fecha_fin';
		val_ant:= 'OLD.cod_actividadgetpgusername()
||'OLD.nombre_actividad'||'OLD.fecha_ini'||'OLD.fecha_fin';
		insert into bitacora_insert VALUES (
fecha_y_hora,getpgusername(),tabla,val_ant,val_nv);
RAISE NOTICE ''se realizo una insercion en la tabla actividad'';
END IF;
	if (cadena=='UPDATE') THEN
	
	
		val_nv := 'NEW.cod_actividad'||'NEW.nombre_actividad'||'NEW.fecha_ini'||'NEW.fecha_fin';
        	val_ant := 'OLD.cod_actividad
'||'OLD.nombre_actividad'||'OLD.fecha_ini||'OLD.fecha_fin';
RAISE NOTICE ''se realizo un update en la tabla actividad'';
        	insert into bitacora_update VALUES (
fecha_y_hora,getpgusername(),tabla,val_ant,val_nv);
	END IF;
	if (cadena =='DELETE' )THEN
	
		RAISE NOTICE ''se realizo un delete en la tabla actividad'';
		val_ant := 'OLD.cod_actividad'
||'OLD.nombre_actividad'||'OLD.fecha_ini'||'OLD.fecha_fin';
       		insert into BITACORA_DELETE VALUES (
fecha_y_hora,getpgusername(),tabla,val_ant);
	END IF;
	
        RETURN NEW;
    END;
' LANGUAGE 'plpgsql';
CREATE TRIGGER bitacora_actividad BEFORE INSERT OR UPDATE ON actividad
    FOR EACH ROW EXECUTE PROCEDURE bitacora_actividad ();
P.D. soy aprendis sobre postgresql
| From | Date | Subject | |
|---|---|---|---|
| Next Message | cesar ramos | 2005-06-13 21:23:52 | |
| Previous Message | dkuroki | 2005-06-13 18:46:09 | Re: Por favor una explicación |