2012-03-29 63 views
4

Im MySql新增功能,我需要在表格中插入10000個隨機的2位數字。有沒有簡單的方法來呢?如何插入隨機數字MySql

+0

可能重複的[MYSQL插入隨機列表](http://stackoverflow.com/questions/1301935/mysql-insert-random-from-list) – RedFilter 2012-03-29 14:56:13

+0

用循環編寫存儲過程。 – Devart 2012-03-29 14:56:50

回答

5

試試這個:

DELIMITER $$ 
CREATE PROCEDURE random_fill(IN cnt INT) 
BEGIN 

    fold: LOOP 

     IF cnt < 1 THEN 
      LEAVE fold; 
     END IF; 

     INSERT INTO foo (bar) VALUES (9 + CEIL(RAND() * 90)); 

     SET cnt = cnt - 1; 
    END LOOP fold; 

END$$ 
DELIMIMTER ; 

要使用此:

CALL random_fill(10000); 

你必須改變這是什麼行:

INSERT INTO foo (bar) VALUES (CEIL(RAND() * higher)); 

更換foobar的東西存在在你的數據庫中。它可能創建一個過程,其中表和行的名稱也作爲參數提供,但這將需要CONCAT在飛行查詢..看起來hack'ish和醜陋。

+1

我會建議把交易放在那裏。沒有它,100K插入超時22K,與它,100K在我的開發機器上花了4.047秒。 – 2016-09-06 01:36:10

13

使用RAND()here所述。要生成10到99之間的2位隨機數,請使用FLOOR(10 + (RAND() * 90))

+1

我在回答中使用了你的公式。爲你+1,這樣我就可以避免侵犯版權! – RolandoMySQLDBA 2012-03-29 23:32:43