[DB] 프로시저, 트리거

szlee·2023년 11월 30일
0

데이터베이스

목록 보기
7/8

프로시저

특정 기능을 수행하는 일종의 트랜잭션 언어.
호출을 통해 실행되어 미리 저장해놓은 SQL 작업을 수행한다.

  • 프로시저를 만들어 데이터베이스에 저장하면 여러 프로그램에서 호출하여 사용할 수 있다.
  • 데이터베이스에 저장되어 수행되기 때문에 stored procedure라고도 불린다.
  • 시스템의 일일 마감 작업, 일관 배치 작업 등에 주로 사용된다.



DECLARE : 프로시저의 명칭, 변수, 인수, 데이터 타입 정의하는 선언부
BEGIN/END : 프로시저의 시작과 종료 의미
CONTROL: 조건문, 반복문이 삽입되어 순차적으로 처리
SQL : DML, DCL이 삽입되어 데이터 관리를 위한 조회, 추가, 수정, 삭제 작업 수행
EXCEPTION : BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리하는 방법을 정의
TRANSACTION : 수행된 데이터 작업들을 DB에 적용할지 취소할지 결정하는 처리부.







프로시저 생성

CREATE [OR REPLACE] PROCEDURE
BEGIN
END;
  • OR REPLACE : 프로시저 이름이 이미 존재하는 경우, 기존의 프로시저를 대체할 수 있다.
  • 파라미터
    • IN : 프로시저에게 값을 전달할 때 지정
    • OUT : 프로시저가 값을 반환할 때 지정
    • INOUT : 프로시저에게 값 전달하고, 프로시저 실행 후 값 반환할 때 지정











트리거

데이터베이스 시스템에서 데이터의 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행된다.

  • 트리거는 데이터베이스에 저장되며, 데이터 변경 및 무결성 유지, 로그메시지 출력 등의 목적으로 사용

DECLARE : 선언부
EVENT : 트리거가 실행되는 조건을 명시
BEGIN/END : 트리거의 시작과 종료 의미
CONTROL : 조건문, 반복문이 삽입되어 순차적으로 처리
SQL
EXCEPTION







트리거 생성

CREATE [OR REPLACE] TRIGGER 트리거명 [동작시기 옵션][동작 옵션] ON 테이블
REFERENCING AS
FOR EACH ROW
BEGIN
END;
  • 동작 시기 옵션 : 트리거가 실행될 때 지정.
    • AFTER : 테이블 변경 후 트리거 실행
    • BEFORE : 테이블 변경 전 트리거 실행
  • 동작 옵션 : 트리거가 실행되게 할 작업의 종류 지정. --INSERT, DELETE, UPDATE
  • FOR EACH ROW : 각 튜플마다 트리거 적용
profile
🌱

0개의 댓글