2016-06-17 21 views
0

私はMySQLでテーブル名を作成したいと思いますが、宣言した文字列値を使用します。これは可能ですか?私はこのようなことを考えている:MySQLは文字列からテーブル名を作成します

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

これまでのところ、私はこれを行う方法を理解することはできません。 Btw私はストアドプロシージャでこれを持っている。

答えて

3

あなたのストアドプロシージャに次のコードを使用します。

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$$ 
関連する問題