USE `util`; DROP procedure IF EXISTS `procNoOverlap`; DELIMITER $$ USE `util`$$ CREATE PROCEDURE `procNoOverlap` (procName VARCHAR(255)) SQL SECURITY INVOKER proc: BEGIN /** * call procedure without overlap */ DECLARE vIsChanged BOOL; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN DO RELEASE_LOCK(procName); RESIGNAL; END; IF !GET_LOCK(procName, 0) THEN LEAVE proc; END IF; CALL exec(CONCAT('CALL ', procName)); DO RELEASE_LOCK(procName); END$$ DELIMITER ;