2016-06-17 15 views
0

Ich möchte einen Tabellennamen in MySQL erstellen, aber verwende einen String-Wert, den ich deklariert habe. Ist das möglich? Ich denke an etwas wie das:MySQL Tabellenname aus String erstellen

DECLARE new_table_name VARCHAR(255); 
SET new_table_name = CONCAT("foo",123); 
CREATE TABLE new_table_name (
    ...etc... 
) 

Bis jetzt kann ich nicht herausfinden, wie man das macht. Übrigens habe ich das in einer gespeicherten Prozedur.

Antwort

3

Verwenden Sie den folgenden Code in Ihrer gespeicherten Prozedur:

BEGIN 

DECLARE new_table_name VARCHAR(255); 
SET new_table_name = CONCAT("foo",123); 

SET @createTable = CONCAT("CREATE TABLE ", new_table_name, "(id int, some_col varchar(55))"); 

PREPARE createStmt FROM @createTable; 
EXECUTE createStmt; 
DEALLOCATE PREPARE createStmt; 

END$$