본문 바로가기
공부/PostgreSQL

[28] PostgreSQL – 시퀀스 만들기

by 혼밥맨 2023. 4. 22.
반응형

[28] PostgreSQL – 시퀀스 만들기

PostgreSQL 시퀀스는 지정된 사양을 기반으로 정수 시퀀스를 생성하는 사용자 정의 스키마 바운드 개체입니다. CREATE SEQUENCE 문은 PostgreSQL에서 시퀀스를 만드는 사용됩니다.

이제 구문을 분석해 보겠습니다.

-        먼저 CREATE SEQUENCE 뒤에 시퀀스 이름을 설정합니다. IF NOT EXISTS 존재하지 않는 경우에만 시퀀스를 조건부로 생성합니다.

-        둘째, 시퀀스의 데이터 유형을 지정합니다. 유효한 데이터 유형은 SMALLINT, INT BIGINT입니다. 건너뛸 경우 기본 데이터 유형은 BIGINT입니다. 시퀀스의 최소값과 최대값을 결정하는 사용됩니다.

-        increment 값을 만들기 위해 현재 시퀀스 값에 추가할 값을 지정합니다. 양수는 오름차순을 만들고 음수는 내림차순을 만듭니다. 기본 increment 값은 1입니다.

-        그런 다음 시퀀스의 최소값과 최대값을 정의합니다. NO MINVALUE 또는 NO MAXVALUE 사용하는 경우 시퀀스는 기본값을 사용합니다. 오름차순의 경우 기본 최대값은 해당 시퀀스의 데이터 타입의 최대값이고 기본 최소값은 1이고, 내림차순의 경우 기본 최대값은 -1이고 기본 최소값은 최소값이다. 시퀀스의 데이터 유형 값입니다.

-        START 절은 시퀀스의 시작 값을 지정합니다.

-        CYCLE 사용하면 한계에 도달한 경우 값을 다시 시작할 있습니다. 다음 숫자는 오름차순의 경우 최소값이고 내림차순의 경우 최대값입니다. NO CYCLE 사용하는 경우 한계에 도달했을 다음 값을 가져오려고 하면 오류가 발생합니다. CYCLE 또는 NO CYCLE 명시적으로 지정하지 않은 경우 NO CYCLE 기본값입니다.

-        OWNED BY 절을 사용하면 또는 테이블을 삭제할 PostgreSQL 연결된 시퀀스를 자동으로 삭제할 있도록 테이블 열을 시퀀스와 연결할 있습니다.

 

예시 01:

예에서는 CREATE SEQUENCE 문을 사용하여 10부터 시작하여 5 증가하는 오름차순 시퀀스를 만듭니다.

시퀀스에서 다음 값을 얻으려면 nextval() 함수를 사용합니다.

결과는 아래와 같습니다.

이제 nexval() 함수를 반복하면 증가된 값을 얻습니다.

결과 01:

예시 02:

다음 예시는주기 옵션을 사용하여 3에서 1까지 내림차순 시퀀스를 생성합니다.

다음 문을 여러 실행하면 3, 2, 1에서 시작하여 다시 3, 2, 1 등으로 숫자가 표시됩니다.

 

결과 02:

예시 03:

예에서는 아래 문을 사용하여 테이블 열과 연결된 시퀀스를 만듭니다.

둘째, order_details 테이블의 item_id 열과 연결된 시퀀스를 만듭니다.

셋째, order_details 테이블에 3개의 주문 라인 항목을 삽입합니다.

넷째, order_details 테이블의 쿼리 데이터:

결과 03:

 

반응형

댓글