在SQL命令上迭代50次

时间:2010-03-05 07:26:15

标签: mysql

我想为我的产品制作比赛代码。

我已经创建了一个合适的SQL语句,它基本上使用当前时间戳并在其上运行SHA1。

我前一段时间尝试过我的INSERT命令创建一个迭代循环但是失败了

谁知道怎么做?

Do 50 times
   INSERT INTO ......
end

此外,我不能拥有两个相同的促销代码,因此每次迭代的时间戳需要不同(如果迭代之间的时间戳可能相同)。

5 个答案:

答案 0 :(得分:1)

用python或其他一些脚本语言编写代码。 使用GUID作为促销代码,而不是时间戳的哈希值。

答案 1 :(得分:1)

答案 2 :(得分:1)

我猜你使用PROCEDURE的方法是最好的。我会先设置另一个分隔符,因为你使用';'已:

delimiter // 

之后定义您的程序。 INSERT INTO ......是您的INSERT代码,是您在问题中写的内容。

CREATE PROCEDURE createPromotions(p1 INT)
BEGIN
   SET @x = 0;
   REPEAT 
   SET @x = @x + 1; 

   INSERT INTO ......

   UNTIL @x > p1 
   END REPEAT;
END
//

输入'//'后,程序准备好CALL。如果你想执行50次,只需拨打50次:

CALL createPromotions(50)

答案 3 :(得分:0)

这很脏,但是如果你的系统上有任何表,你知道它有超过50行,你可以执行以下操作:

create table promotion_code ( pc varchar(100) );
set @c = 1;
insert into promotion_code 
  select sha1( now() + (@c := @c + 1 ) ) 
  from mysql.help_relation limit 50;

答案 4 :(得分:0)

CREATE PROCEDURE createPromotions(p1 INT)
 BEGIN
   SET @x = 0;
   REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
END

这样的某种过程会很好但我不知道如何将它变成我需要的格式。这是重复一次SQL语句50次