Допустим, у меня есть функция, которая создает временную таблицу, которую я хочу использовать для запроса SELECT
. Есть ли шанс, что функция будет перестраивать временную таблицу более одного раза в операторе SELECT
? Какова лучшая практика в этом сценарии?
CREATE FUNCTION getID(id INT)
RETURNS INT DETERMINISTIC
BEGIN
-- build ID table
CREATE TEMPORARY TABLE IF EXISTS tbl2(
id int,
val int
);
-- insert values into tbl2 here
SET @id = NULL;
SELECT tbl2.id INTO @id from tbl2 where id = tbl2.id;
return @id;
END
SELECT getID(id)
FROM tbl
WHERE condition;