2012-03-29 19 views
4

私はMySqlに新しく、テーブル10000にランダムな2桁の数字を挿入する必要があります。これに簡単な方法はありますか?乱数を挿入する方法MySql

+0

[MYSQL insert random from list](http://stackoverflow.com/questions/1301935/mysql-insert-random-from-list) – RedFilter

+0

ループでストアドプロシージャを記述します。 – Devart

答えて

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 ; 

はこれを使用するには:

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

が存在する何かをfoobarを交換してください:あなたが変更する必要があることは、この行がある

CALL random_fill(10000); 

あなたのデータベースに。 で、テーブルと行の名前もパラメータとして提供されていますが、それはCONCATとなります。hack'ishと醜いです。

+1

私はそこに取引をすることをお勧めします。それがなければ、100Kのインサートは22kのタイムアウトになり、100Kは私の開発マシンで4.047秒かかりました。 –

13

hereのようにRAND()を使用してください。 10桁と99桁の2桁の乱数を生成するには、FLOOR(10 + (RAND() * 90))を使用します。

+1

私は私の答えであなたの数式を使用しました。 +1あなたのために私は著作権侵害を避けることができます! – RolandoMySQLDBA

関連する問題