일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 컴퓨터 활용 능력
- oracle
- delete
- Update
- 인덱스의 개념과 장단점
- 2025-02-13
- 클러스터형 인덱스와 보조 인덱스
- 컴퓨터 활용 능력 1급
- 리눅스 마스터 2급
- 혼자 공부하는 컴퓨터 구조 및 운영체제
- github에 새 리포지토리 추가하기
- 컴퓨터 구조
- 웹 디자인 기능사
- sqld
- 첫 프로그래밍
- 혼자 공부하는 컴퓨터 구조 + 운영체제
- 혼자 공부하는 SQL
- INSERT
- 혼자 공부하는 네트워크
- 명령 프롬프트
- 뷰
- gitkraken을 통한 프로젝트 올리기
- 이것이 오라클이다
- 운영체제
- mysql 설치 방법과 정상 작동 확인하기
- 데이터 모델링
- 친절한 SQL 튜닝
- 데이터모델링
- youtube review
- 열거형
- Today
- Total
코딩 브이로그
[이것이 오라클이다] 11장 3교시 : [Oracle] 재귀 트리거, 순차번호의 자동입력 트리거 본문
[이것이 오라클이다] 11장 3교시 : [Oracle] 재귀 트리거, 순차번호의 자동입력 트리거
표준프레임워크 풀스텍 개발자 홍의표 2024. 11. 13. 13:19* Youtube Link - https://www.youtube.com/watch?v=_X6GOarxaXg&list=PLVsNizTWUw7FzFgU1qe-n7_M7eMFA9d-f&index=33
11.3.3 재귀 트리거
실습용 테이블 준비
- (1) 간접 재귀 트리거용 테이블 A,B 생성 및 시퀀스 생성
- 트리거의 단계 숫자가 저장되는 테이블
이렇게 0으로 초기화 시키고, 계속해서 값을 올리는 테이블이다.
- 간접 재귀 트리거 테스트를 위한 트리거 A, B 생성
recuA 테이블에 입력을 하면 트리거가 작동을 해서
recuB 테이블에 입력되도록 한다.
그리고 recuB 테이블에 입력되면
recuA 테이블에 입력되도록 한다.
이렇게 서로를 간접적으로 재귀한다.
- 호출
그리고 recuA에 데이터를 입력하면
서로를 무한히 재귀하여 트리거가 작동하므로
50번까지 작동을 하고
이후에는 에러가 나서 롤백된다.
- 50번 반복 횟수 제한 트리거
IF문을 주어서 반복횟수가 50회가 넘어가면
자동으로 트리거를 탈출하도록 만들었다.
값들이 정상적으로 들어간다.
11.3.4 순차번호의 자동 입력 트리거
- 테스트 테이블
- 시퀀스 (10000값부터 증가)
- 트리거 생성
BEFORE INSERT: 입력되기 이전에
INSERTING: 입력 중인가
:NEW.seqNum IS NULL : :NEW 테이블에 있는 seqNum이 null인가?
SELECT autoSEQ.NEXTVAL INTO :NEW.seqNum FROM DUAL; 을 통해서 다음 시퀀스 값을 :NEW 테이블에 시퀀스 값으로 넣어준다.
:NEW 테이블에 있는 값은 자동으로 새 테이블에 입력된다.
이렇게 순차적으로 시퀀스값이 자동으로 입력되는 트리거를 만들어보았다.
감사합니다.
'Oracle' 카테고리의 다른 글
[이것이 오라클이다] 12장 2교시: [Oracle] HTML, PHP 기본문법, PHP와 HTML 관계 (3) | 2024.11.14 |
---|---|
[이것이 오라클이다] 12장 1교시 : [Oracle] 웹 사이트 개발환경 구축 (1) | 2024.11.13 |
[이것이 오라클이다] 11장 2교시 : [Oracle] BEFORE 트리거, INSTEAD OF 트리거, 중첩 트리거 (3) | 2024.11.12 |
[이것이 오라클이다] 11장 1교시: [Oracle] 트리거 개념과 사용법, AFTER 트리거, :NEW와 :OLD 테이블 (1) | 2024.11.12 |
[이것이 오라클이다] 10장 4교시: [Oracle] 커서, 패기 (1) | 2024.11.12 |