상세 컨텐츠

본문 제목

64일 - 시퀀스 (Sequence)

수업 일지/Oracle DBMS

by NayC 2021. 5. 21. 12:03

본문

728x90

* 아래 수업 듣고 다시 정리해서 쓰는 글 *

 

상황 ) 데이터 뭘 하나 추가하면 가장 MAX값에 1 더해서 직접 ID를 넣어주는 것은 귀찮귀찮.... 

-> '시퀀스'라는것을 사용할 수 있다. 

우선 방법은 2가지인 것

1) MAX(ID) 값에 +1을 넣어주는 것

2) 시퀀스를 사용하는 것

 

오라클에 이렇게 시퀀스라는 카테고리가 있음! 

-> 우클릭  > 시퀀스 생성을 해보자

이름은 보통 테이블명_SEQ 이렇게

 

// BOOK_ID_SEQ를 만들었다고 가정하면

 

BOOK 테이블 편집 > ID열에 가서 아까 만들어준 BOOK_ID_SEQ를 선택해주면 이제 BOOK 테이블에는 ID 따로 주지 않아도 저절로! ID가 +1씩 추가되서 들어가게 된다 :)


숫자를 자동적으로 증가하게

 

캐싱을 쓰면 효율이 좋다고... 

DDL 구문 보면 (CREATE SEQUENCE...)

자동적으로 수 증가

(오류나면 데이터 유실됨) 

 

// 수 증가를 사용하는 2가지 방법 (서브쿼리, 시퀀스) 

- 시퀀스 사용하면 이빨(?)은 빠지겠지만 훨씬 간편함

 

1) 시퀀스는 숫자만 가능.

만약 자료형이 문자열형이면 시퀀스 사용하는데 문제 

2) 시퀀스는 이빨 빠지는게 문제 

- 이빨은 빠지게 되어있음 (게시글 삭제만 해도... 그러니 이빨 빠지는거에 대해 의미 부여 말기)

 

-> 코드량 편한거! 

기본을 시퀀스로

 

//

 

트리거 - 수정, 삭제 시 저절로 ? 해주는? 

코드 실행해주는 역할? 

 

식별자 아이디열을 삽입할 필요가 없음

(지금 여기서는 식별 전문...) 

 

트리거나 시퀀스를 저절로 실행해주는거로 되어있어서!

 

아이디를 삽입하지 않아도 저절로 증가되는~ 

 

테이블명_SEQ 라고 보통 이름 짓는다. 

 

테이블 > 편집 > ID열 > 본인이 만든 시퀀스 지정해두기 

그리고 실행해보기 (INSERT해서) 

 

은정님거

이거 실습해봐야함

 

728x90
반응형

관련글 더보기