Buenas Días amigos de foros del web:
Quería preguntarles si es posible detectar cambios precisos realizados en 1 registro de una tabla por medio de un trigger y almacenar todas las columnas que se hayan modificado en un campo, sería algo como utilizar en el trigger Una comparación de Columnas OLD y NEW y en dicha comparación si es diferente esta misma meterle a una variable el antes y después, para que cuando se hayan comparados todas las columnas del registro con el antes y el después, me mande en un solo campo todos los cambios realizados en una sola columna por medio de la variable.
Me explicare:
Tengo una tabla user con los campos iduser,apellido1, apellido2, nombre1,nombre2
El trigger sería así:
Código MySQL:
Ver originalDELIMITER $$
DECLARE columnasamostrar
VARCHAR(150) DEFAULT ''; # Esta es la variable que me alamacenara todos los cambios realizados
/*Comparación de Cada una de las Calumnas if es diferente se le concatena a la variable que guarda todos los cambios realizados*/
INSERT INTO changesonusers
(iduser
, description
) VALUES(OLD.iduser
,columnasamostrar
); #se guarda EN 1 SOLO REGISTRO (NO en varios), todo lo que se modifico en una tabla llamada changesonusers DELIMITER ;
El problema es que este trigger me ingresa 1 registro por cada columna modificada y yo necesito es que todas las modificaciones se almacenen en 1 solo registro no en varios, este trigger me hace lo siguiente :
Código MySQL:
Ver original#por ejemplo si modifico un registro en el que apellido2 era igual a Gutierrez por Sanchez y nombre2 era igual a Juan por Pedro, en la tabla changesonusers se ingresaria esto:
+-------------------------------------+
|iduser| description |
|-------------------------------------|
| 1 |Antes:Gutierrez Ahora:Sanchez |
|-------------------------------------|
| 1 |Antes:Juan Ahora:Pedro |
|-------------------------------------|
# Pero yo lo que necesito que haga es esto
+------------------------------------------------------------+
|iduser| description |
|------------------------------------------------------------|
| 1 |Antes:Gutierrez Ahora:Sanchez,Antes:Juan Ahora:Pedro |
|------------------------------------------------------------|
Es posible Hacerlo cualquier ayuda será bienvenida
Mil gracias...