当前位置: 首页 > 面试题库 >

如何用许多随机数填充MySQL表?

谭安翔
2023-03-14
问题内容

我要问的是已被要求在一个问题很抽象的术语,用(理解)没有具体的答案提供:

在MySQL提示下,如何创建和填充rand_numbers具有1列number INT和1111行的表,其中该number列包含2222和5555之间的随机数?

就像是:

CREATE TABLE rand_numbers(number INT);

 #run following line 1111 times
INSERT INTO rand_numbers (number) VALUES (2222 + CEIL( RAND() * 3333));

已经提出了这个问题,但是要么依赖于外部语言进行循环,要么太笼统了。我想知道是否可以从典型的Linux MySQL提示符下执行此简单操作。


问题答案:

要创建表,请使用:

CREATE TABLE rand_numbers (
    number INT NOT NULL
) ENGINE = MYISAM;

然后,用随机值填充它,您可以定义一个存储过程(它支持循环):

DELIMITER $$
CREATE PROCEDURE InsertRand(IN NumRows INT, IN MinVal INT, IN MaxVal INT)
    BEGIN
        DECLARE i INT;
        SET i = 1;
        START TRANSACTION;
        WHILE i <= NumRows DO
            INSERT INTO rand_numbers VALUES (MinVal + CEIL(RAND() * (MaxVal - MinVal)));
            SET i = i + 1;
        END WHILE;
        COMMIT;
    END$$
DELIMITER ;

CALL InsertRand(1111, 2222, 5555);

然后,您可以重复使用该过程以根据不同的参数插入更多的随机值。例如说600行的随机值介于1200和8500之间:

CALL InsertRand(600, 1200, 8500);


 类似资料:
  • 问题内容: 我有两个表如下。 “面积”表 “读数”表 Readings表中的“ AreaKey”是Areas表中“ AreaKey”的外键。 Areas表已经有一些数据,行ID的范围是1到50。 我想用一些示例数据填充Readings表-(“ Reading”列的随机浮点值介于1.0和100.0之间,以及给定DateTime范围之间ReadingDateTime的随机datetime值;例如,当前

  • 问题内容: 我需要使用构造函数创建一个数组,添加一个将数组打印为序列的方法,以及一个使用double类型的随机数填充数组的方法。 到目前为止,这是我所做的: 我正在努力弄清楚如何用在randomFill方法中生成的随机数填充数组。谢谢! 问题答案: 您需要添加逻辑以使用 randomFill 方法将随机值分配给double []数组。 更改 至 然后,您可以调用方法,包括main方法中的list(

  • 问题内容: 如何填充一个int列(当前为空),其中包含不带重复项的随机数? 问题答案: 我想您可以使该列成为防止重复的主键,尽管这是一种hack。您可以稍后删除密钥。

  • 我试图用2和5的随机值填充一个数组,但是生成的数字总是从0开始。具体问题如下,以及我目前拥有的代码。 (问题)创建一个名为TwoDarrayu_YourFirstName的公共类,成员如下: 带有头的方法:public静态空填充2DArray(int[][]ma)上述方法将填充ma引用的2D整数数组。数组元素值将在2到5之间随机生成。 到目前为止我的代码:

  • 问题内容: 我正在编写一个从整数n创建2D数组的程序。然后,我必须用从1到n n数组大小的 值填充数组, 并检查它是否是一个幻方。 我现在的方式是按照从1到n n数组大小的 顺序填充 数组。我该如何随机? 我的代码: 问题答案: 创建一个随机的数字列表以添加到您的数组中,如下所示:

  • 到目前为止,这就是我得到的,但我不太确定接下来该怎么办。我(认为)这里发生的是,它到达数组的第一个位置,在0,0处,并生成一个数字。然后转到1,1和2,2,依此类推。我不确定该从那里开始,我相信有一种更有效的方法可以一次填充整行或整列。 此外,我的编译器不允许我像平时一样使用cout或endl?它坚持我使用std::cout,我只是想知道为什么。