MySQL - Guardar el historial de una tabla en la base de datos

   
Vista:

Guardar el historial de una tabla en la base de datos

Publicado por Qanzr (6 intervenciones) el 15/09/2015 19:22:32
Hola,buenos días,alguién tiene alguna idea de cómo hacer que por ejemplo un usuario entre a la base de datos y modifica registros y estos que guarden el registro anterior a la modificación. quiero hacer un reporte de que al entrar muestre que fila de mi base de datos se hicieron cambios.no se si me podrian ayudar la verdad es que no tengo ni idea de como se hace eso,saludos a todos.

Mi tabla es está:
Modelomarzo_zpsgwthioki
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
Imágen de perfil de xve

Guardar el historial de una tabla en la base de datos

Publicado por xve (898 intervenciones) el 15/09/2015 20:21:35
Hola Qanzr, lo único que se me ocurre, es que guardes los cambios en una tabla de log, donde guardes todos los campos anteriores, o los campos modificados... Phi podrás guardas la fecha de actualización...

Te puede servir?
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

Guardar el historial de una tabla en la base de datos

Publicado por SuperIndio (35 intervenciones) el 15/09/2015 22:32:14
Es mucho mas simple de lo que parece...
simplemente tenes que agregar un TRIGER por insert o por update a la tabla en cuenstion
y en dicho triger envias los dato nuevos, la fecha, la hora y de algun modo recuperar
con que usuario realiza la modificacion io el insert a una nueva tabla tipo LOG
con el detalle que vos quieras y listo, esta tabla deberia tener el acceso restringido y de uso privado o restricto
respecto a delete,update y/o insert por parte de usuarios comunes, porque sino no sirve
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Guardar el historial de una tabla en la base de datos

Publicado por SuperIndio (35 intervenciones) el 15/09/2015 22:40:04
A lo mejor no me explique bien ahi va el codigo

1
2
3
4
5
6
7
8
CREATE TRIGGER `Trg_Buchon_Saldos` AFTER UPDATE on `TSaldos`
FOR EACH ROW
BEGIN
    IF (NEW.Saldo != OLD.Saldo) THEN
    	INSERT INTO TLogOperations (FechaHora, ViejoSaldo, NuevoSaldo, Usuario )
	            VALUES (CURRENT_TIMESTAMP(), OLD.Saldo, NEW.Saldo, current_user() );
    END IF;
END$$

El Trigger Trg_Buchon_Saldos sobre la tabla TSaldos cuando un usuario realice un UPDATE y me modifique un saldo se insertara en la tabla TLogOperations un registro con los datos necesarios para saber quien fue y que modifico.... espero te ayude
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Guardar el historial de una tabla en la base de datos

Publicado por Qanzr (6 intervenciones) el 16/09/2015 06:11:24
Ok,muchas gracias ya he entendido lo que tengo que hacer,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