我有带有增量表名的 mysql DB(即 table1、table2、table3、tablen)。在此过程中的某个地方,这种增量已经跳过了一些,并且存在差距。我想执行一个脚本,当循环发现丢失的表时,该脚本将创建具有正确表名的表。所以像..
for i=1 to 100
create table if not exists 'tablei'
***TABLE FIELD DECLARATIONS***
end
非常感谢任何帮助。
所有“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);
类似的东西(可能需要一些 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
应该这样做。