영역 분할 정의

설명

영역 분할은 PARTITION BY RANGE 문을 이용하여 정의한다.

구문

CREATE TABLE(

...

)

PARTITION BY RANGE ( <partition_expression> ) (

PARTITION <partition_name> VALUES LESS THAN ( <range_value> ),

PARTITION <partition_name> VALUES LESS THAN ( <range_value> ) ),

... )

)

예제 1

다음은 올림픽 참가국 정보를 담은 participant2 테이블을 생성하고 참가한 올림픽의 개최연도를 2000년도 전/후로 영역 분할하는 데이터를 삽입하는 예제이다. 데이터 삽입 시 88년, 96년 올림픽에 참가한 국가는 before_2000에, 나머지 국가는 before_2008에 저장된다.

CREATE TABLE participant2 (host_year INT, nation CHAR(3), gold INT, silver INT, bronze INT)

PARTITION BY RANGE (host_year)

(PARTITION before_2000 VALUES LESS THAN (2000),

PARTITION before_2008 VALUES LESS THAN (2008) );

 

INSERT INTO participant2 VALUES (1988, 'NZL', 3, 2, 8);

INSERT INTO participant2 VALUES (1988, 'CAN', 3, 2, 5);

INSERT INTO participant2 VALUES (1996, 'KOR', 7, 15, 5);

INSERT INTO participant2 VALUES (2000, 'RUS', 32, 28, 28);

INSERT INTO participant2 VALUES (2004, 'JPN', 16, 9, 12);

예제 2

다음과 같이 영역 분할에서 분할 키 값이 NULL이면 첫 번째 분할에 저장된다.

INSERT INTO participant2 VALUES(NULL, 'AAA', 0, 0, 0);

주의 사항