MySQL Dinâmico com Variáveis ​​Locais

Como posso usar instruções SQL dinâmicas no banco de dados MySQL e sem usar variáveis ​​de sessão?

Agora eu tenho esse código (no procedimento armazenado do 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 
(...)

Mas eu gostaria de usar apenas variáveis ​​locais, isso significa que eu gostaria de iniciar este procedimento com:

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

e não use @ char em qualquer lugar. Há alguma maneira de fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion