2017-06-01 13 views
0

ストアドプロシージャを使用してテーブルを作成したい。私は静的な列名を指定することでそれを行うことができますが、私は呼び出しメソッドを通過する引数のように列名を動的にすることが列名になります。カラム名として渡すパラメータを使ってmysqlでテーブルを動的に作成する

私のサンプルコードはこれです:

DELIMITER $$ 
CREATE PROCEDURE table_creation(IN column1 VARCHAR(20),IN column2 VARCHAR(20),IN column3 VARCHAR(20),IN column4 VARCHAR(20)) 
BEGIN 
CREATE TABLE mytable(column1 VARCHAR(20),column2 VARCHAR(20), column3 VARCHAR(20), column4 VARCHAR(20)); 
END $$ 
DELIMITER; 
CALL table_creation(name1,location,working,designation); 

答えて

0

答えの下に見つけてください、私はあなたにこの意志は役に立ち願っています。

BEGIN 
    #Routine body goes here... 

       SET SESSION group_concat_max_len = (2056 * 2056); 

          SET @sql = NULL; 

           SET @sql = CONCAT('Create table if not EXISTS my_table (column1 VARCHAR(20),column2 VARCHAR(20), column3 VARCHAR(20), column4 VARCHAR(20)) ENGINE=MyISAM DEFAULT CHARSET=utf8 '); 


           PREPARE stmt FROM @sql; 
           EXECUTE stmt; 
           DEALLOCATE PREPARE stmt; 

END 

問題がある場合は教えてください。

関連する問題