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