如何在MySQL中创建一个包含多个具有随机值的列的大表?

时间:2015-01-14 08:19:12

标签: mysql testing

我需要为MySQL测试不同的GUI工具。为此,我需要包含大表的数据库。我尝试使用存储过程,但事实是不同字段中的值在所有行中是相同的。我需要的是值应该是随机的。有没有办法做到这一点?

提前致谢!

2 个答案:

答案 0 :(得分:2)

嗯,有很多MySQL内置的数学函数可以用来生成随机数据。例如,在存储过程中,您可以添加这些SQL语句以生成随机数据,然后将它们插入表中各自的字段中。 MySQL CONV()将一个数字从一个数字基数系统转换为另一个数字基数系统。转换后,函数返回数字的字符串表示形式。语法为:CONV(num,from_base,to_base)

select conv(floor(rand() * 99999999999999), 10, 24);

生成5个随机字符串并将其插入学生表的示例存储过程看起来有点像这样:

delimiter $$  
  create procedure randomizer()
    begin
      declare i int Default 0 ;
      declare random char(20) ;
      myloop: loop
      set random=conv(floor(rand() * 99999999999999), 10, 24) ;
      insert into `student` (`id`, `name`) VALUES (i+1,random) ;
      set i=i+1;
      if i=5 then
        leave myloop;
    end if;
    end loop myloop;
  end $$
  delimiter ;

希望这有帮助。

答案 1 :(得分:0)

我认为更好的方法就是你编写一个java应用程序。它很容易创建一些循环来生成大量的字段和数据。

相关问题