2012-08-17 3 views
0

증분 테이블 이름 (즉, table1, table2, table3, tablen)이있는 mysql DB가 있습니다. 어딘가에이 증분이 건너 뛰고 약간의 차이가 있습니다. 루프가 누락 된 테이블을 찾을 때 올바른 테이블 이름으로 테이블을 생성하는 스크립트를 실행하려고합니다. 그래서 뭔가가 ..예제 누락 된 테이블을 생성하는 MySQL 루프

for i=1 to 100 
    create table if not exists 'tablei' 
    ***TABLE FIELD DECLARATIONS*** 
end 

어떤 도움을 주셨습니다. 같은

답변

0

뭔가 (몇 MySQL의 구문 twiddles을해야 할 수도 있습니다)

Declare @loopvar int 
Declare @sql VarChar(8000) 
Declare @table_definition VarChar(8000) 
Set @table_definition = '(SomeField int null)' 
Set @loopvar = 1 
While @loopVar < 100 
begin 
    set @sql = 'Create Table if not exists TableName' + Convert(VarChar(3),@loopvar) + @table_definition 
    exec(@sql) 
    set @loopvar = @loopvar + 1 
end 

을해야한다.

0

모든 "MySQL의 구문 twiddles"로 답 :

DELIMITER // 
CREATE PROCEDURE missing_tables(n INT) 
    BEGIN 
    WHILE n > 0 
     DO 
     SET @sql = CONCAT('create table if not exists table', n, ' (value INT)'); 
     PREPARE cmd FROM @sql; 
     EXECUTE cmd; 
     DEALLOCATE PREPARE cmd; 
     SET n = n - 1; 
    END WHILE; 
END; // 
DELIMITER ; 
CALL missing_tables(5); 
관련 문제