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?