반응형
-- t_employee 테이블에 새로운 직원 정보를 삽입하는 쿼리
INSERT INTO t_employee (
employee_id, employee_pass, employee_name, employee_tel,
employee_phone, employee_deptseq, employee_positionseq,
regdate, deleteyn
) VALUES (
-- employee_id: 색상명 + 동물명 + (30% 확률로) 랜덤 숫자로 구성된 소문자 ID 생성
LOWER(CONCAT(
(ARRAY['blue','red','green','yellow','black','white','purple','orange','pink','brown'])[floor(random()*10+1)],
(ARRAY['cat','dog','bird','fish','lion','tiger','bear','wolf','fox','deer'])[floor(random()*10+1)],
CASE WHEN random() < 0.3 THEN floor(random()*100)::text ELSE '' END
)),
-- employee_pass: 'pass_' 접두사와 5자리 랜덤 숫자로 구성된 비밀번호 생성
CONCAT('pass_', LPAD(floor(random()*100000)::text, 5, '0')),
-- employee_name: 랜덤 성씨 + 랜덤 이름 + 3자리 랜덤 숫자로 구성
CONCAT(
(ARRAY['김','이','박','최','정','강','조','윤','장','임'])[floor(random()*10+1)],
(ARRAY['민준','서연','도윤','지우','예준','시우','주원','하은','지호','지유'])[floor(random()*10+1)],
LPAD(floor(random()*1000)::text, 3, '0') -- 이름 뒤에 000부터 999까지의 랜덤 숫자 추가
),
-- employee_tel: 70% 확률로 서울 전화번호, 30% 확률로 기타 지역 전화번호 생성
CASE
WHEN random() < 0.7 THEN CONCAT('02-', LPAD(floor(random()*4000+1000)::text, 4, '0'), '-', LPAD(floor(random()*9000+1000)::text, 4, '0'))
ELSE CONCAT('0', floor(random()*60+31)::text, '-', LPAD(floor(random()*900+100)::text, 3, '0'), '-', LPAD(floor(random()*9000+1000)::text, 4, '0'))
END,
-- employee_phone: 010으로 시작하는 랜덤 휴대폰 번호 생성
CONCAT('010-', LPAD(floor(random()*9000+1000)::text, 4, '0'), '-', LPAD(floor(random()*9000+1000)::text, 4, '0')),
-- employee_deptseq: 50% 확률로 11176 또는 11177 부서 배정
CASE WHEN random() < 0.5 THEN 11176 ELSE 11177 END,
-- employee_positionseq: 11179부터 11184까지의 랜덤 직급 배정
floor(random()*6+11179),
-- regdate: 현재 날짜로부터 최대 1년 전까지의 랜덤 날짜 생성
CURRENT_DATE - (random() * 365 * INTERVAL '1 day')::interval,
-- deleteyn: 5% 확률로 'Y', 95% 확률로 'N' 설정
CASE WHEN random() < 0.05 THEN 'Y' ELSE 'N' END
);
반응형
'데이타베이스 > POSTGRESQL' 카테고리의 다른 글
테이블명세서 작성용 (0) | 2024.07.16 |
---|---|
* postgresql remote connect / postgresql 원격 연결 허용 (0) | 2022.01.29 |