Я хранимую процедуру, которая будет обязательно названием для функции, но когда-нибудь, что я пытаюсь Я следующее сообщение об ошибке:Mysql Хранится Вызов функции хранимых процедур
Dynamic SQL is not allowed in stored function or trigger
Моя функция:
DROP FUNCTION IF EXISTS `clusbe`.`getLongitude`;
CREATE DEFINER=`root`@`localhost` FUNCTION `getLongitude`(`id` INT, `latitude` DOUBLE) RETURNS double
BEGIN
DECLARE retorno DOUBLE;
IF (latitude <> '') THEN
set retorno = latitude;
ELSE
CALL proc_getLongitude(1, 0);
END IF;
RETURN retorno;
END;
Мои хранимые процедуры:
DROP PROCEDURE IF EXISTS clusbe.proc_getLongitude;
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_getLongitude`(`id` INT, `longitude` DOUBLE)
BEGIN
DECLARE retorno DOUBLE;
IF (longitude <> '' AND longitude <> null) THEN
set retorno = latitude;
ELSE
set @sql = CONCAT("SELECT longitude FROM endereco as e, usuario as u WHERE e.id = u.endereco AND u.id = ", id);
PREPARE stmt FROM @sql;
EXECUTE stmt ;
DEALLOCATE PREPARE stmt;
END IF;
END;
Некоторые идеи подобные решения?