38 lines
1.5 KiB
SQL
38 lines
1.5 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`log_addWithUser`(
|
|
vSchema VARCHAR(45),
|
|
vEntity VARCHAR(45),
|
|
vChangedModel VARCHAR(45),
|
|
vOriginFk INT,
|
|
vChangedModelId INT,
|
|
vActionCode VARCHAR(45),
|
|
vOldInstance JSON,
|
|
vNewInstance JSON,
|
|
vUserId INT)
|
|
BEGIN
|
|
/**
|
|
* Guarda las acciones realizadas por el usuario
|
|
*
|
|
* @param vScheme Esquema al que pertenece la tabla.
|
|
* @param vEntity Nombre que hace referencia a la tabla donde se insertará el log
|
|
* @param vChangedModel Nombre que hace referencia a la tabla que se modifica
|
|
* @param vOriginFk Id del registro de la tabla origen
|
|
* @param vChangedModelId Id del registro de la tabla a la que se realiza la acción
|
|
* @param vActionCode Código de la acción {insert | delete | update}
|
|
* @param vOldInstance JSON que contiene los valores viejos
|
|
* @param vNewInstance JSON que contiene los valores nuevos
|
|
* @param vUserId Id del usuario que realiza la acción
|
|
*/
|
|
DECLARE vTableName VARCHAR(255) DEFAULT CONCAT(IFNULL(vEntity, ''), 'Log');
|
|
|
|
SET vSchema = util.quoteIdentifier(vSchema);
|
|
SET vTableName = util.quoteIdentifier(vTableName);
|
|
|
|
CALL util.log_cleanInstances(vActionCode, vOldInstance, vNewInstance);
|
|
|
|
EXECUTE IMMEDIATE CONCAT(
|
|
'INSERT INTO ', vSchema, '.', vTableName, ' SET changedModel = ?, originFk = ?, changedModelId= ?, action = ?, oldInstance = ?, newInstance = ?, userFk = ?'
|
|
) USING vChangedModel, vOriginFk, vChangedModelId, vActionCode, vOldInstance, vNewInstance, vUserId;
|
|
END$$
|
|
DELIMITER ;
|