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ć?