DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`manaSpellers_requery`( vSalesDepartmentFk INTEGER ) `whole_proc`: BEGIN /** * Guarda en departmentMana el mana consumido por un departamento * * @param vSalesDepartmentFk Id department */ DECLARE vIsDepartmentExcluded BOOLEAN; SELECT COUNT(*) INTO vIsDepartmentExcluded FROM departmentManaExcluded WHERE salesDepartmentFk = vSalesDepartmentFk; IF vIsDepartmentExcluded THEN LEAVE whole_proc; END IF; CREATE OR REPLACE TEMPORARY TABLE tmp.client SELECT id FROM client WHERE salesDepartmentFk = vSalesDepartmentFk; CALL client_getMana(); INSERT INTO departmentMana (salesDepartmentFk, amount) SELECT vSalesDepartmentFk, SUM(mana) FROM tmp.clientMana ON DUPLICATE KEY UPDATE amount = VALUES(amount); DROP TEMPORARY TABLE tmp.client, tmp.clientMana; END$$ DELIMITER ;