【发布时间】:2012-04-13 06:01:06
【问题描述】:
我是 MySql 的新手,我需要在表中插入 10000 个随机 2 位数字。有简单的方法吗?
【问题讨论】:
-
写一个带循环的存储过程。
标签: mysql
我是 MySql 的新手,我需要在表中插入 10000 个随机 2 位数字。有简单的方法吗?
【问题讨论】:
标签: mysql
按照here 的描述使用RAND()。要生成 10 到 99 之间的 2 位随机数,请使用 FLOOR(10 + (RAND() * 90))。
【讨论】:
试试这个:
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 ) );
将foo 和bar 替换为数据库中存在的内容。 是可以创建一个过程,其中表和行的名称也作为参数提供,但这需要CONCAT 动态查询.. 看起来很hack'ish 和丑陋。
【讨论】: