0

増分テーブル名 (つまり、table1、table2、table3、tablen) を持つ mysql DB があります。途中のどこかで、このインクリメントがいくつかスキップされ、ギャップがあります。ループで見つからないテーブルが見つかったときに、正しいテーブル名でテーブルを作成するスクリプトを実行したいと考えています。だから何か..

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

どんな助けでも大歓迎です。

4

2 に答える 2

0

すべての「MySql構文のいじり」を含む回答:

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);
于 2014-05-16T15:30:00.047 に答える
0

のようなもの (いくつかの MySql 構文の調整が必要になる場合があります)

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

するべきです。

于 2012-08-17T16:43:01.557 に答える