Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MySQL中创建包含多个随机值列的大表?_Mysql_Testing - Fatal编程技术网

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

如何在MySQL中创建包含多个随机值列的大表?,mysql,testing,Mysql,Testing,我需要测试MySQL的不同GUI工具。为此,我需要包含大表的数据库。我尝试使用存储过程,但问题是不同字段中的值在所有行中都是相同的。我需要的是这些值应该是随机的。有办法吗 提前谢谢 我认为更好的方法是编写sa java应用程序。创建一些循环以生成大量字段和数据非常容易 好吧,有很多MySQL内置的数学函数可以用来生成随机数据。例如,在存储过程中,可以添加这些SQL语句以生成随机数据,然后将它们插入表中各自的字段中。MySQL CONV()将一个数字从一个数字基数系统转换为另一个数字基数系统。转换

我需要测试MySQL的不同GUI工具。为此,我需要包含大表的数据库。我尝试使用存储过程,但问题是不同字段中的值在所有行中都是相同的。我需要的是这些值应该是随机的。有办法吗


提前谢谢

我认为更好的方法是编写sa java应用程序。创建一些循环以生成大量字段和数据非常容易

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

生成5个随机字符串并将其插入student表的示例存储过程如下所示:

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 ;

希望这能有所帮助。

如果不使用Java app,在Mysql中是不可能做到的吗?我认为开发过程比用Java、php等编写代码更难。也许吧,但我觉得更容易。。无论如何,谢谢…:)我正在测试中的数据同步工具。这个随机化程序会在那个里工作吗?是的。事实上,您可以在SQLyog的gui中编写此存储过程并启用数据同步工具。但我建议不要将时间间隔设置得太短,因为数据同步会在InnoDB中获取行级锁,而在MyISAM中获取表级锁。
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 ;