El 29 de mayo de 2009 20:13, Giorgio PostgreSQL
<giorgio.pg...@gmail.com>escribió:

> Hola nuevamente, definitivamente esta mal..
>
> Lo que quiero es hacer un trigger de tipo 'INSERT' y para eso mi funcion
> esta muy mal..
>
> Quisiera que me ayuden si alguien tiene un codigo que me pueda guiar ya que
> estoy recontral.. con esto..
>
> Gracias..
>

mira aca te envio este que esta funcionando, cualquier duda me avisa


CREATE OR REPLACE FUNCTION audita_pacientes_trg()
  RETURNS trigger AS
$BODY$
DECLARE
    fecha timestamp;
    equipo varchar;
BEGIN
    select into fecha current_timestamp(0);
    -- INSERTA LA IP DEL EQUIPO DEL USUARIO
     select into equipo inet_client_addr();
    --select into usuario user;
    IF TG_OP='INSERT' THEN
        INSERT INTO pacientes_auditados (pc_cod, pc_nombre, pc_apellidos,
pc_accion, pc_fecha, pc_equipo) VALUES (NEW.pc_cod,
NEW.pc_nombre,NEW.pc_apellido,0, fecha, equipo);
    END IF;
    IF TG_OP='UPDATE' THEN
        INSERT INTO pacientes_auditados (pc_cod, pc_nombre, pc_apellidos,
pc_accion, pc_fecha, pc_equipo) VALUES (NEW.pc_cod,
NEW.pc_nombre,NEW.pc_apellido,1, fecha, equipo);
    END IF;
    IF TG_OP='DELETE' THEN
        INSERT INTO pacientes_auditados (pc_cod, pc_nombre, pc_apellidos,
pc_accion, pc_fecha, pc_equipo) VALUES (OLD.pc_cod,
OLD.pc_nombre,OLD.pc_apellido,2, fecha, equipo);
    END IF;
    RETURN NULL;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
  COST 100;

-- 
Cesar Erices Vergara
Ingeniero en Gestión Informática
Analista de Sistema

Santiago - Chile

Responder a