MySQL: सिंटेक्स त्रुटि, अप्रत्याशित '@', उम्मीद है ':' - mysql, temp-tables, dynamicquery

मैं गतिमान रूप से अस्थायी तालिका बनाना चाहता हूं। मैं संग्रहीत कार्यविधि के पैरामीटर के रूप में स्तंभ नाम दे रहा हूं।

उदाहरण:

DELIMITER $$
create procedure sptemp(IN nm varchar(50))
BEGIN

SET @q = CONCAT("CREATE TEMPORARY TABLE temptable    // Error occuring here @q
SELECT DISTINCT ", nm ," AS Col FROM table1");
PREPARE d FROM @q;
EXECUTE d;
DEALLOCATE PREPARE d;
END$$
DELIMITER ;

त्रुटि: सिंटैक्स त्रुटि, अप्रत्याशित "@", अपेक्षा ":"

उत्तर:

उत्तर № 1 के लिए 1
SET @q = CONCAT("CREATE TEMPORARY TABLE IF NOT EXISTS temptable (INDEX(Col)) ENGINE=MyISAM
AS (SELECT DISTINCT ", nm ," AS Col FROM table1)");

बोनस के रूप में - अपने Col कॉलम का सूचकांक।


संबंधित सवाल
सबसे लोकप्रिय