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 vUserId Id del usuario. * @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(45); SET vTableName = CONCAT(vEntity, 'Log'); SET @qryLog := CONCAT( 'INSERT INTO ', vTableName, ' (originFk, userFk, action, description)', ' VALUES (', vOriginFk, ', ', vUserId, ', "', vActionCode, '", "', vDescription, '")' ); PREPARE stmt FROM @qryLog; EXECUTE stmt; DEALLOCATE PREPARE stmt; END$$ DELIMITER ;