我想爲我的產品製作編碼代碼。在SQL命令中迭代50次
我已經創建了一個適當的SQL語句,它基本上使用當前時間戳並在其上運行SHA1。
我嘗試了,而以前在我的INSERT命令創建一個迭代循環,但未能
有誰知道怎麼樣?
Do 50 times
INSERT INTO ......
end
另外,我不能有兩個相同的促銷代碼,以便時間戳需要爲每個迭代不同(如果它是在所有可能的時間戳可能是迭代之間的相同)。
我想爲我的產品製作編碼代碼。在SQL命令中迭代50次
我已經創建了一個適當的SQL語句,它基本上使用當前時間戳並在其上運行SHA1。
我嘗試了,而以前在我的INSERT命令創建一個迭代循環,但未能
有誰知道怎麼樣?
Do 50 times
INSERT INTO ......
end
另外,我不能有兩個相同的促銷代碼,以便時間戳需要爲每個迭代不同(如果它是在所有可能的時間戳可能是迭代之間的相同)。
用python或其他腳本語言編寫代碼。 對促銷代碼使用GUID,而不是時間戳記的散列。
我已經嘗試過了,但我不會讓它工作。我不是那麼熟悉mySQL語法 – jax 2010-03-05 07:41:05
這是很骯髒的,但如果你有你的系統,你知道有超過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;
CREATE PROCEDURE createPromotions(p1 INT)
BEGIN
SET @x = 0;
REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
END
某種像這樣的過程會很好,但我不知道如何把它變成我需要的格式。這是重複一次SQL語句的50倍
請參閱http://stackoverflow.com/questions/2385168/iterate-50-times-over-an-sql-command/6153421#6153421 – High6 2011-05-27 14:08:27
您使用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)
使用時間戳和計數器不是更容易嗎? – 2010-03-05 07:29:46