2015-01-14 4 views
0

MySQL 용으로 다른 GUI 도구를 테스트해야합니다. 이를 위해서는 큰 테이블을 포함하는 데이터베이스가 필요합니다. 저장 프로 시저를 사용해 보았지만 여러 필드의 값이 모든 행에서 동일하다는 것이 문제입니다. 내가 원하는 것은 값이 무작위이어야한다는 것입니다. 그렇게 할 수있는 방법이 있습니까?MySQL에서 임의의 값을 가진 여러 열을 가진 큰 테이블을 만드는 방법은 무엇입니까?

미리 감사드립니다.

답변

2

음, 무작위 데이터를 생성하는 데 사용할 수있는 많은 수학 함수가 내장되어 있습니다. 예를 들어 저장 프로 시저에서 이러한 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 ; 

희망 이것은 도움이됩니다.

+0

[SQLyog] (https : // www)에서 데이터 동기화 도구를 테스트하고있었습니다. .webyog.com/product/sqlyog). 이 randomiser 절차가 그 안에서 작동할까요?. –

+0

예. 사실 SQLyog의 gui에이 저장 프로 시저를 작성하고 Data Sync 도구를 사용할 수 있습니다. 그러나 Data Sync가 MyISAM의 InnoDB 및 테이블 수준 잠금에서 행 수준 잠금을 획득하기에는 간격을 너무 짧게 설정하지 않는 것이 좋습니다. – sid1408

0

더 좋은 방법은 예를 들어 sa 자바 응용 프로그램을 작성할 수 있다고 생각합니다. 수많은 루프와 필드와 데이터를 생성하는 것은 매우 쉽습니다.

+0

자바 애플 리케이션을 사용하지 않고 MySQL에서 할 수있는 방법이 있습니까? –

+0

개발 절차가 Java, PHP 등으로 코딩하는 것보다 더 어렵다고 생각합니다. –

+0

어쩌면, 쉽게 찾을 수 있습니다. 어쨌든 고맙습니다. :) –

관련 문제