2012-03-29 56 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