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?