[PostgreSQL] SAMPLE DATASET (1)

식빵·2023년 5월 18일
0

postgresql-memo

목록 보기
19/34
post-thumbnail

요즘 sql 로 테스트할 일이 잦은데, 이때마다 샘플 table, data 만드는 게
여간 귀찮은 게 아니더군요. 그래서 테스트 DataSet 만드는 쿼리 자체를 여기에
기록해뒀다가 필요할 때마다 복사 + 붙여넣기하려고 합니다.

SQL

drop table if exists users cascade;
drop table if exists users_group;

create table users
(
    user_id    integer      not null,
    user_name  varchar(100) not null,
    group_code smallint,
    constraint users_pk primary key (user_id)
);

create table users_group
(
    users_group_id smallint      not null,
    group_name     varchar(100) not null,
    constraint users_group_pk primary key (users_group_id)
);

insert into users (user_id, user_name, group_code)
select id, concat('user-', id), floor((id - 1) / 1000) + 1 -- 1000 단위로 그룹핑
from generate_series(1, 50000) as t(id);
;

-- user_id : 1    ~ 1000  ==> group : 1
-- user_id : 1001 ~ 2000  ==> group : 2
-- user_id : 2001 ~ 3000  ==> group : 3
-- ...
-- user_id : 49000 ~ 50000 ==> group : 50

insert into users_group (users_group_id, group_name)
select id / 1000, concat('group-', id / 1000) -- 1000 단위로 그룹핑
from generate_series(1, 50000) as t(id)
group by id / 1000;

alter table users
    add constraint users_foreign_constraint foreign key (group_code)
        references users_group (users_group_id);
profile
백엔드를 계속 배우고 있는 개발자입니다 😊

0개의 댓글