[SQL] 프로시저 란?
[SQL] 프로시저 란?
MySQL 8 버전 기준으로 작성되었습니다.
Procedure 란?
어떤 업무를 수행하기 위한 절차를 의미한다.
위에처럼 요약할 수 있지만 설명이 부진하다고 생각해서 추가적으로 설명하겠습니다.
데이터베이스에서 실행할 수 있는 하나 이상의 SQL 문을 모아 놓은 것이며, 복잡한 작업을 하나의 블록으로 캡슐화한 것을 의미합니다.
즉, 프로세스를 절차적으로 기술해 놓은 것을 의미합니다.
Procedure 문법
1
2
3
4
CREATE
[DEFINER = user]
PROCEDURE [IF NOT EXISTS] sp_name ([proc_parameter[,...]])
[characteristic ...] routine_body
1
2
3
4
5
6
7
8
9
10
11
12
proc_parameter:
[ IN | OUT | INOUT ] param_name type
characteristic: {
COMMENT 'string'
| LANGUAGE SQL | [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
}
routine_body:
SQL routine
Procedure 사용하기
한번 위의 문법을 바탕으로해서 가장 기본적인 반복문을 통해 데이터를 삽입하는 작업을 하겠습니다.
1
2
3
4
5
6
7
8
9
10
CREATE PROCEDURE insertTestTitleAndNumber()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 100000 DO
INSERT INTO test_table (title, number)
VALUES (CONCAT('제목 : ', i), i);
SET i = i + 1;
END WHILE;
END
참고링크
This post is licensed under
CC BY 4.0
by the author.