2013-02-10 2 views
0

에서 루프 문에 파이어 버드에서 문을 위해 나는 파이어 버드에서이 SQL 코드가 지금은 MySQL 데이터베이스에 매우 유사 하나를 수행하기 위해 노력하고있어 아주 잘는 MySQL의

set term !! ; 

EXECUTE BLOCK AS 
declare variable vtable_name VARCHAR(31); 
BEGIN 
for select table_name from mytables into :vtable_name 
execute statement 'DROP TABLE ' || :vtable_name || ';'; 
END!! 

set term ; !! 

작동합니다. mysql 매뉴얼 읽기 LOOP satement와 WHILE 구문에 관해 읽었다.

이 내 MySQL의 코드,하지만하지 않습니다는

WHILE (SET @vtable_name = (select table_name from mytables)) 
DO 
    BEGIN 
    DROP TABLE @vtable_name; 
    END; 
END WHILE; 

답변

1

문제가 "(mytables에서 테이블 _ 선택)"한 Statment는 결과가 설정 반환하고 당신이 변수로 설정 전체 결과를 할당한다는 것입니다 작동합니다. 두 번째 문제는 DROP/SELECT 문에서 동적 테이블 이름/열 이름을 허용하지 않는다는 것입니다.

당신은 동적 SQL을 사용할 수 있습니다 참조 데모 : http://sqlfiddle.com/#!2/cf278/1

use a variable for table name in mysql sproc