시리얼
시리얼(SERIAL)은 고유한 순번을 생성하는 객체이다. 다중 사용자 환경에서 고유한 순번을 생성하여 사용할 수 있으며 테이블과 독립적으로 생성되기 때문에 다수의 테이블에서 동일한 시리얼을 사용할 수 있다.
시리얼 생성 |
구문
CREATE SERIAL serial_identifier
[ START WITH 처음 생성되는 시리얼 번호 ]
[ INCREMENT BY 증가 값]
[ MINVALUE 시리얼의 최소 값 | NOMINVALUE ]
[ MAXVALUE 시리얼의 최대 값 | NOMAXVALUE ]
[ CYCLE | NOCYCLE ]
[ CACHE | NOCACHE ]
|
예제 1
위의 예제는 초기값 1, 증가값 1, 최대 값으로 1037으로 지정된 시리얼 객체 order_no를 생성하는 예제이다.#
예제 2
CREATE SERIAL idx_no START WITH 10000 INCREMENT BY 2 MAXVALUE 20000;
|
위의 예제는 초기값 10,000, 증가값 2, 최대 값 20,000으로 지정된 시리얼 객체 idx_no를 생성하는 예제이다.
| |
시리얼 읽고 갱신 |
구문
시리얼 아이디.CURRENT_VALUE
시리얼 아이디.NEXT_VALUE
|
테이블 생성 및 데이터 삽입 SQL문
CREATE TABLE athlete_idx
( code INT, NAME VARCHAR(40) );
INSERT INTO athlete_idx VALUES (order_no.NEXT_VALUE, 'Park Tae-Hwan');
INSERT INTO athlete_idx VALUES (order_no.NEXT_VALUE, 'Kim Youn-a');
|
결과 값 출력 SQL문
SELECT * FROM athlete_idx;
|
결과 테이블
no
|
code
|
name
|
1
|
1
|
Park Tae-Hwan
|
2
|
2
|
Kim Youn-a
| |
|
주의 사항
시리얼을 생성하고 처음 사용할 때 NEXT_VALUE를 이용하면 초기 값을 반환한다. 그 이후에는 현재 값에 증가 값이 추가되어 반환된다.
| |
시리얼 변경 |
설명
ALTER SERIAL 문을 이용하면 시리얼 값의 증가치를 갱신하고 시작 값, 최소 값, 최대 값을 설정하거나 제거할 수 있으며, 순환 속성을 설정할 수 있다.
구문
ALTER SERIAL 시리얼 아이디
[ INCREMENT BY 증가 값 ]
[ START WITH 시작 값 변경 ]
[ MINVALUE 최소 값| NOMINVALUE ]
[ MAXVALUE 최대 값| NOMAXVALUE ]
[ CYCLE | NOCYCLE ]
[ CACHE | NOCACHE ] |
시리얼 변경 후 데이터 삽입 SQL문
ALTER SERIAL order_no INCREMENT BY 2;
INSERT INTO athlete_idx VALUES (order_no.NEXT_VALUE, 'Park Ji-Sung');
|
결과 값 출력 SQL문
SELECT * FROM athlete_idx;
|
결과 테이블
no
|
code
|
name
|
1
|
1
|
Park Tae-Hwan
|
2
|
2
|
Kim Youn-a
|
3
|
4
|
Park Ji-Sung
| |
|
| |
시리얼 삭제 |
설명
DROP SERIAL 문으로 시리얼 객체를 데이터베이스에서 삭제할 수 있다.
구문
시리얼 삭제 SQL문
| |
시리얼 권한 부여
PUBLIC을 포함한 어떤 사용자도 시리얼 객체를 생성할 수 있다. 일단 생성되면 모든 사용자들이 CURRENT_VALUE, NEXT_VALUE를 통해 시리얼 숫자를 가져갈 수 있다. 시리얼 객체를 갱신하고 삭제하는 것은 단지 소유자와 DBA만 가능하다. 하지만 만약 소유자가 PUBLIC이면 모두가 갱신하거나 삭제할 수 있다.