PostgreSQL - Obtener Hora De Creacion De Un Registro

 
Vista:

Obtener Hora De Creacion De Un Registro

Publicado por Javier (4 intervenciones) el 14/01/2006 23:36:07
Hola a toda la gentita, bueno tengo un pequeño problemilla que se me presento en el sistema, resulta que un usuario realizo una transaccion hasta ahi no hay problema la transaccion se realizo correctamente pero lo hizo en una hora que no era ya que a la hora que se hizo ya se habia corrido un proceso del sistema, entonces el usuario se niega y dice que el creo a una hora que no es porque si no el proceso hubiera considerado esa transaccion, ahora lo que yo quisiera saber es si hay alguna manera de obtener la hora en que se creo ese registro en mi tabla, es muy urgente no se si alguien me puede ayudar con que funcion puedo obtener yo guardo el dia y todo eso pero no la hora, pero ahora lo necesito haber si alguien me puede ayudar gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Obtener Hora De Creacion De Un Registro

Publicado por Julio (334 intervenciones) el 15/01/2006 14:26:29
Con un function trigger puedes hacer que se dispare un evento (Insert, Update, Delete) a otra tabla de auditoria para que puedas tener el historico de los movimientos de tu tabla... aqui un pequeño ejemplo:

CREATE TABLE emp (
empname text NOT NULL,
salary integer
);

CREATE TABLE emp_audit(
operation char(1) NOT NULL,
stamp timestamp NOT NULL,
userid text NOT NULL,
empname text NOT NULL,
salary integer
);

CREATE OR REPLACE FUNCTION process_emp_audit() RETURNS TRIGGER AS $emp_audit$
BEGIN
IF (TG_OP = 'DELETE') THEN
INSERT INTO emp_audit SELECT 'D', now(), user, OLD.*;
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
INSERT INTO emp_audit SELECT 'U', now(), user, NEW.*;
RETURN NEW;
ELSIF (TG_OP = 'INSERT') THEN
INSERT INTO emp_audit SELECT 'I', now(), user, NEW.*;
RETURN NEW;
END IF;
RETURN NULL; -- result is ignored since this is an AFTER trigger
END;
$emp_audit$ LANGUAGE plpgsql;

CREATE TRIGGER emp_audit
AFTER INSERT OR UPDATE OR DELETE ON emp
FOR EACH ROW EXECUTE PROCEDURE process_emp_audit();

PD: Esto lo saque del manual ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Obtener Hora De Creacion De Un Registro

Publicado por Javier (4 intervenciones) el 16/01/2006 17:27:51
Gracias Julio esta bien el trigger, pero lo que necesito es saber la hora de un registro que ya fue grabado dias antes, no se un registro que recien sera grabado haber si me puedes ayudar en eso ok..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Obtener Hora De Creacion De Un Registro

Publicado por Julio (334 intervenciones) el 17/01/2006 05:38:51
A ver si te entiendo, lo que tu quieres es saber la HORA en que fue registrado días antes un registro, ENTONCES para esto alguien tuvo que registrar ese registro en esa tabla (OSEA UN USUARIO HACIENDO UN INSERT)... es lo mismo que te digo, si tienes una tabla donde quieres controlar a que hora se registro una fila (el timestamp es un tipo de dato que guarda la fecha y la hora)...

Ahora, si me preguntas: PERO YA FUE REGISTRADO LA FILA SIN ANTES TENER LA TABLA DE AUDITORIA Y EL TRIGGER...??? y lo que tu quieres es saber quien lo hizo (antes de hacer la tabla de auditoria... ) pues ahi si que estamos en problemas, te mentiria... creo que hasta ahi llega mi ayuda... sorry
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Obtener Hora De Creacion De Un Registro

Publicado por Javier (4 intervenciones) el 17/01/2006 22:12:51
bueno de todas maneras gracias por tu tiempo, haber como le hago eso es justamente lo que quiero, un registro pasado piñaaa gracias de todas maneras saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar