LoginSignup
5
0

More than 1 year has passed since last update.

【Postgres】SQLの勉強のために大量のテストデータを登録してみる

Last updated at Posted at 2022-01-24

目的

SQLを極めようと思って、本を読んでいると思ったことがある。
データの登録が面倒すぎる!!!!!!!!!
ということで何か簡単にINSERTできる方法はないかと調べた。

データの数は多い方が、文によって実行速度が変わりやすいため、今回は100レコード登録することにする。

環境

PostgreSQL 14.1 (Ubuntu 14.1-1.pgdg18.04+1) on x86_64-pc-linux-gnu

DB作成

$ create database <database_name>

データベースを指定

\c <database_name>

テスト用テーブルを作成

この時のカラムとのちに追加するデータの制約などは一致させる必要がある

$ create table customer (profile_id int, first_name char(10), last_name char(10), age Char(5))
;

データを投入する

この追加するレコードのフィールドと先ほど作成したテーブルのカラムデータの制約などは一致させる必要がある

$ INSERT INTO customer (profile_id,first_name,last_name,age)
SELECT
-- idのvalueだが、iとすることでi行目のレコードとなる。つまり1,2,3...となる -- 
i,
format('田中%s', i),
format('太郎%s', i),
format('%s才', i)
-- 100件のデータを登録するため100としているが、ここは自由 --
-- 100回for文を回しているイメージ --
from generate_series(1,100) as i;

--INSERT 0 100--

結果

select * from customer;
 profile_id |  first_name  |  last_name   |  age
----------+--------------+--------------+--------
        1 | 田中1        | 太郎1        | 1才
        2 | 田中2        | 太郎2        | 2才
        3 | 田中3        | 太郎3        | 3才
        4 | 田中4        | 太郎4        | 4才
        5 | 田中5        | 太郎5        | 5才
        6 | 田中6        | 太郎6        | 6才
        7 | 田中7        | 太郎7        | 7才
        8 | 田中8        | 太郎8        | 8才
        9 | 田中9        | 太郎9        | 9才
       10 | 田中10       | 太郎10       | 10才
       11 | 田中11       | 太郎11       | 11才
       12 | 田中12       | 太郎12       | 12才
       13 | 田中13       | 太郎13       | 13才
       14 | 田中14       | 太郎14       | 14才
・
・
・
       95 | 田中95       | 太郎95       | 95才
       96 | 田中96       | 太郎96       | 96才
       97 | 田中97       | 太郎97       | 97才
       98 | 田中98       | 太郎98       | 98才
       99 | 田中99       | 太郎99       | 99才
      100 | 田中100      | 太郎100      | 100才
(100 rows)

できた。

おそらくこのようにテストデータを欲しい人はたくさんいると思うので、どんどん使って欲しい。

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0