Dynamiczny MySQL ze zmiennymi lokalnymi

Jak mogę używać dynamicznych instrukcji SQL w bazie danych MySQL i bez korzystania ze zmiennych sesji?

W tej chwili mam taki kod (w procedurze zapisanej w 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 
(...)

Ale chciałbym używać tylko zmiennych lokalnych, co oznacza, że ​​chciałbym rozpocząć tę procedurę od:

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

i nie używaj @ char wszędzie. Czy jest jakiś sposób, aby to zrobić?

questionAnswers(1)

yourAnswerToTheQuestion