2017-06-01 2 views
0

Ich möchte eine Tabelle durch gespeicherte Prozedur erstellen. Ich kann es tun, indem ich statische Spaltennamen spezifiziere, aber ich möchte, dass die Spaltennamen dynamisch sind wie Argumente, die ich als Aufrufmethode durchführe, sind Spaltennamen.Erstellen Sie eine Tabelle dynamisch in mysql mit Parametern, die ich als Spaltennamen übergeben

Mein Beispielcode ist dies:

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); 

Antwort

0

Bitte unten Antwort finden, ich hoffe, dass dies hilfreich für Sie.

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 

Lassen Sie mich wissen, wenn Sie irgendein Problem erreichen.

Verwandte Themen