Dynamische MySQL mit lokalen Variablen

Wie kann ich die Verwendung dynamischer SQL-Anweisungen in MySQL-Datenbank und ohne Verwendung von session-Variablen?

Jetzt habe ich so einen code (in MySQL gespeicherte Prozedur):

(...) 
ERKLÄREN, TableName VARCHAR(32); 
SET @SelectedId = NULL; 
SET @s := CONCAT("SELECT Id INTO @SelectedId AUS ", TableName, "WHERE param=val LIMIT 1"); 
PREPARE stmt VON @s; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 
WENN ISNULL(@SelectedId) DANN 
(...)

Aber ich würde gerne verwenden Sie nur lokale Variablen, das heißt, ich möchte mit diesem Verfahren beginnen mit:

ERKLÄREN, TableName VARCHAR(32); 
ERKLÄREN s VARCHAR(1024); 
ERKLÄREN SelectedId INTEGER UNSIGNED; 
(...)

sind und nicht die Verwendung von @ char überall. Gibt es eine Möglichkeit, dies zu tun?

InformationsquelleAutor ssobczak | 2009-09-24

Schreibe einen Kommentar