티스토리 뷰
데이터베이스를 구축하다보면 순차적으로 증가하는 값을 지정해야할 때가 있다. 게시판 서비스를 만들거나 유저목록 데이터베이스를 만들 때 index 값으로 정렬하면 관리하기가 편하다.
생성
sequence는 전역변수처럼 데이터베이스에 생성할 수 있다.
CREATE SEQUENCE number
START WITH 1,
INCREMENT BY 1,
MAXVALUE 1000,
MINVALUE 1,
NOCYCLE;
각 옵션은 설정하지 않으면 기본값 시작값(1), 증가값(1), 최소값(1), 최대값(가장 큰 숫자), NOCYCLE 으로 설정된다.
이렇게 생성된 number라는 sequence 변수를 데이터베이스 내에서 접근하여 사용할 수 있다.
사용
sequence는 주로 INSERT
와 함께 사용된다. 테이블에 row를 추가하면서 sequence를 사용하는 방법을 보자.
- NEXTVAL
sequence 변수에 접근해서 최근에 가져온 값보다 한단계 더 큰 값을 가져오라는 뜻이다. 따라서 이전 쿼리에서 10을 가져왔다면 이번에는 11이 입력된다. 물론INSERT INTO USERS(index_number, ID, PW) VALUES(number.NEXTVAL, 'eastroot', '1111');
INCREMENT BY
값을 다른 값으로 설정했다면 그 차이만큼 증가한 값이 입력된다. - CURRVAL
sequence 변수에서 마지막으로 가져온 값을 다시 가져온다. 이 때 sequence를 증가시키지 않으며 특별한 경우를 제외하고 잘 사용되지 않는다. 그도 그럴것이 사용할 이유가 딱히 없다.INSERT INTO USERS(index_number, id, pw) VALUES(number.CURRVAL, 'eastroot', '1111');
수정
START WITH 값을 제외한 설정들을 수정할 수 있다. START WITH 값을 바꾸고싶다면 seqence를 지웠다가 다시 생성해야한다.
ALTER SEQUENCE number INCREMENT BY 2, MAXVALUE 10000;
삭제
DROP SEQUENCE number;
사용이 끝난 sequence는 삭제할 수 있다.
'Non-Programming > Database' 카테고리의 다른 글
SQL - subquery (0) | 2019.05.20 |
---|---|
데이터베이스 정규화 (0) | 2019.05.20 |
SQL - Tutorial (0) | 2019.04.07 |
데이터베이스 - 연산(Operation) (0) | 2019.03.25 |
데이터베이스 - 키(Key) (0) | 2017.03.09 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ue4
- scala
- Java
- 국내여행
- 수학
- database
- winsock
- Git
- OS
- 드라마
- DesignPattern
- JSP
- 데이터베이스
- swift
- SHADER
- SOCKET
- Cocos2d-x
- C
- mongoDB
- C/C++
- machine learing
- ios
- Spring
- 알고리즘
- 자료구조
- game
- 운영체제
- C++
- rxswift
- SwiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함