Как написать функцию mysql с динамическим именем таблицы?
Я пытаюсь написать функцию sql, выполняя следующие действия: 1 - получить имя таблицы, используемой в соединении, в качестве параметра.
но я получаю ошибку синтаксиса MySQL
1064 - You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'table DETERMINISTIC
BEGIN select `r`.`id` AS `id`, (case ' at line 2
Это мой запрос
DELIMITER $
CREATE FUNCTION getTranslation (tablename varchar(50),entity varchar(20),itemid int,lang char(3))
RETURNS table
DETERMINISTIC
BEGIN
select
`r`.`id` AS `id`,
(case
when isnull(`t`.`descr`) then `r`.`descr_ml`
else `t`.`descr`
end) AS `descr`
from
(tablename `r`
left join `g001_translation` `t` ON ((`t`.`item_id` = `r`.`id`)))
END$
DELIMITER ;
Между прочим, у выбранной части отлично работает статическое имя таблицы.