USE `vn`; DROP procedure IF EXISTS `logAddWithUser`; DELIMITER $$ USE `vn`$$ CREATE DEFINER=`root`@`%` PROCEDURE `logAddWithUser`(vOriginFk INT, vUserId INT, vActionCode VARCHAR(45), vEntity VARCHAR(45), vDescription TEXT) BEGIN /** * Guarda las acciones realizadas por el usuario * * @param vOriginFk Id del registro de origen * @param vActionCode Código de la acción {insert | delete | update} * @param vEntity Nombre que hace referencia a la tabla. * @param descripcion Descripción de la acción realizada por el usuario */ DECLARE vTableName VARCHAR(255) DEFAULT CONCAT(IFNULL(vEntity, ''), 'Log'); SET @sqlQuery = CONCAT( 'INSERT INTO vn.', vTableName, ' SET originFk = ?, userFk = ?, action = ?, description = ?' ); SET @originFk = vOriginFk; SET @userFk = vUserId; SET @action = vActionCode; SET @description = vDescription; PREPARE stmt FROM @sqlQuery; EXECUTE stmt USING @originFk, @userFk, @action, @description; DEALLOCATE PREPARE stmt; SET @sqlQuery = NULL; END$$ DELIMITER ;