Динамический MySQL с локальными переменными

Как я могу использовать динамические операторы SQL в базе данных MySQL и без использования переменных сеанса?

Прямо сейчас у меня есть такой код (в хранимой процедуре MySQL):

(...)
DECLARE TableName VARCHAR(32);
SET @SelectedId = NULL;
SET @s := CONCAT("SELECT Id INTO @SelectedId FROM ", TableName, " WHERE param=val LIMIT 1");
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
IF ISNULL(@SelectedId) THEN 
(...)

Но я хотел бы использовать только локальные переменные, это означает, что я хотел бы начать эту процедуру с:

DECLARE TableName VARCHAR(32);
DECLARE s VARCHAR(1024);
DECLARE SelectedId INTEGER UNSIGNED;
(...)

и нигде не используйте @ char. Есть какой-либо способ сделать это?

Ответы на вопрос(1)

Ваш ответ на вопрос