0

我有带有增量表名的 mysql DB(即 table1、table2、table3、tablen)。在此过程中的某个地方,这种增量已经跳过了一些,并且存在差距。我想执行一个脚本,当循环发现丢失的表时,该脚本将创建具有正确表名的表。所以像..

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 回答