Динамический 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. Есть какой-либо способ сделать это?