2014-10-10 2 views
0

동적으로 임시 테이블을 만들고 싶습니다. 저장 프로 시저에 매개 변수로 열 이름을 전달하고 있습니다.MySQL : 구문 오류, 예기치 않은 '@', 예상 ':'

:

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
SET @q = CONCAT('CREATE TEMPORARY TABLE IF NOT EXISTS temptable (INDEX(Col)) ENGINE=MyISAM 
AS (SELECT DISTINCT ', nm ,' AS Col FROM table1)'); 

- 귀하의 골 컬럼의 인덱스입니다.

+0

정말 고마워요. – Meem

관련 문제