CREATE SERIAL

시리얼(SERIAL)은 고유한 순번을 생성하는 객체이다. 시리얼은 다음과 같은 특성을 갖는다.

설명

CREATE SERIAL 문을 이용하여 데이터베이스에 시리얼 객체를 생성한다.

구문

CREATE SERIAL serial_name

[ START WITH initial ]

[ INCREMENT BY interval]

[ MINVALUE min | NOMINVALUE ]

[ MAXVALUE max | NOMAXVALUE ]

[ CACHE integer | NOCACHE ]

예제 1

--creating serial with default values

CREATE SERIAL order_no;

 

--creating serial within a specific range

CREATE SERIAL order_no START WITH 10000 INCREMENT BY 2 MAXVALUE 20000;

--creating serial with specifying the number of cached serial values

CREATE SERIAL order_no START WITH 10000 INCREMENT BY 2 MAXVALUE 20000 CACHE 3;

 

--selecting serial information from the db_serial class

SELECT * FROM db_serial;

 

  name            current_val      increment_val         max_val         min_val         cyclic      started       cached_num        att_name

====================================================================================================================================================

'order_no'      10006            2                     20000           10000                0            1                3            NULL

예제 2

다음은 선수 번호와 이름을 저장하는 athlete_idx 테이블을 생성하고 order_no 시리얼을 이용하여 인스턴스를 생성하는 예제이다. order_no.CURRENT_VALUE은 시리얼의 현재 값을 반환하고, order_no. NEXT_VALUE는 시리얼 값을 증가시킨 후 값을 반환한다.

CREATE TABLE athlete_idx( code INT, name VARCHAR(40) );

CREATE SERIAL order_no START WITH 10000 INCREMENT BY 2 MAXVALUE 20000;

INSERT INTO athlete_idx VALUES (order_no.NEXT_VALUE, 'Park');

INSERT INTO athlete_idx VALUES (order_no.NEXT_VALUE, 'Kim');

INSERT INTO athlete_idx VALUES (order_no.NEXT_VALUE, 'Choo');

INSERT INTO athlete_idx VALUES (order_no.CURRENT_VALUE, 'Lee');

SELECT * FROM athlete_idx;

 

         code  name

===================================

        10000  'Park'

        10002  'Kim'

        10004  'Choo'

        10004  'Lee'