MySQL dinámico con variables locales

¿Cómo puedo usar sentencias de SQL dinámico en la base de datos MySQL y sin usar las variables de sesión?

En este momento tengo un código de este tipo (en el procedimiento almacenado de 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 
(...)

Pero me gustaría usar solo variables locales, eso significa que me gustaría comenzar este procedimiento con:

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

y no uses @ char en ningún lado. ¿Hay alguna manera de hacer esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta