- 하나 이상의 ‘입력 인수’를 받아서 ‘결과를 반환’하는 일련의 작업을 수행하는 SQL 코드 블록을 의미합니다.
- 해당 일련의 작업은특정 ‘작업’을 수행하기 위해서 수행되며 ‘입력’을 받아서 처리한 후 결과값은 ‘반환할 수도 있고 반환하지 않을 수도’ 있습니다. - 특정 작업은 데이터베이스 내의 데이터를 조작하고 업데이트를 하는 작업을 의미합니다.데이터 베이스 내부에서 실행되며 애플리케이션 개발자가 호출하여 실행할 수 있습니다.
- 프로시저는 LOOP를 100번 수행하면서 Dummy 데이터를 tb_user 테이블에 쌓습니다 - INSERT를 수행한 뒤 LOOP_CNT는 1씩 증가합니다.
💡 컬럼 구성
- user_id는 랜덤 한 난수 5개의 숫자와 문자 조합의 난수를 생성하도록 하였습니다. - user_pw는 패스워드로 ‘1234’로 고정하였습니다. - user_name은 파라미터로 받은 값을 기반으로 동일한 이름을 만들도록 하였습니다. - user_st는 모두 ‘A’ 상태인 Active 상태로 구성하였습니다.
CREATEOR REPLACE PROCEDURE PROC_INSERT_SAME_USER(IN pi_user_name TEXT)
LANGUAGE plpgsql
AS $$
DECLARE
LOOP_CNT INTEGER;
LOOP_TIME INTEGER;
BEGIN-- 지역변수로 사용할 변수 지정
LOOP_CNT :=0;
-- 반복 구문
WHILE LOOP_CNT <100 LOOP
INSERTINTO TB_USER (user_id, user_pw, user_nm, user_st)
VALUES(SUBSTRING(gen_random_uuid()::text, 1, 5), '1234', pi_user_name, 'A');
LOOP_CNT := LOOP_CNT +1;
END LOOP;
COMMIT;
END;
$$;