PostgreSQL에서 테스트를 위해 무작위 데이터를 삽입하는 방법은 무엇입니까?
4208 단어 databasesqlproductivitypostgres
그러나 우리는 쉘 스크립트나 (당신이 가장 좋아하는 언어) 스크립트를 사용할 수 없습니다. 예, 스크립트로 1M 행을 생성한 다음 데이터베이스에 저장하려고 시도할 수 있지만 스크립트 메모리는 메모리에서 1M 행을 사용할 수 없습니다. 스트림을 만들거나 데이터 청크를 생성한 다음 데이터베이스 또는 CSV 파일에 저장한 다음 데이터베이스로 가져와야 하지만 PostgreSQL의 놀라운 기능이 도움이 되는 동안 왜 그렇게 해야 할까요?
repeat() 함수
두 개의 매개변수
repeat(string to repeat, number of times to repeat)
를 사용하여 문자열을 반복하는 함수입니다.예시:
INSERT INTO test (stringColumn) VALUES (repeat("Wow ", 3));
그러면 값이
Wow Wow Wow
인 stringColumn이 있는 행이 삽입됩니다.generate_series() 함수
필수 매개변수 2개와 선택 매개변수 1개
generate_series(start, stop, increment by [default is 1])
를 사용하여 각각 일련의 숫자를 행으로 생성하는 함수입니다.예시:
INSERT INTO test (id) VALUES (generate_series(1, 1000));
이렇게 하면 1씩 증가한 이전 ID와 동일한 ID를 가진 1000개의 행이 각각 삽입됩니다.
random() 함수
0에서 1까지 임의의 부동 소수점을 생성하는 함수입니다.
예시:
INSERT INTO test (id) VALUES (trunc(random()*100));
이렇게 하면 0에서 100까지 세 자리 숫자의 id가 생성됩니다(float를 정수로 만들기 위해 trunc).
모두 함께:
플레이어 테이블을 만들어 봅시다:
CREATE TABLE players (id INT, about TEXT, age INT);
그런 다음 임의의 데이터가 포함된 1000개의 행을 삽입해 보겠습니다.
INSERT INTO players (id, about, age) VALUES (generate_series(1, 1000), repeat('A cool player. ', 2) || 'My number is ' || trunc(random()*1000), trunc(random()*10 * 2 + 10));
이 기사가 마음에 드셨기를 바랍니다. 다음에서 제 LinkedIn을 팔로우할 수 있습니다.
Reference
이 문제에 관하여(PostgreSQL에서 테스트를 위해 무작위 데이터를 삽입하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/amrelmohamady/how-to-insert-random-data-for-testing-in-postgresql-2l98텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)