>  기사  >  데이터 베이스  >  오라클 시퀀스란?

오라클 시퀀스란?

WBOY
WBOY원래의
2022-05-24 18:36:575069검색

Oracle에서 시퀀스는 일련의 고유 번호를 생성하는 데 사용되는 데이터베이스 개체입니다. 시퀀스는 테이블의 행에 대한 시퀀스 번호를 자동으로 생성할 수 있는 시퀀스 번호 생성기입니다. 키 및 정의 시퀀스 사용자에게는 CREATE SEQUENCE 권한이 있어야 합니다.

오라클 시퀀스란?

이 튜토리얼의 운영 환경: Windows 10 시스템, Oracle 11g 버전, Dell G3 컴퓨터.

oracle 시퀀스란 무엇인가요?

Sequence: 시퀀스는 일련의 고유 숫자를 생성하기 위해 oracle에서 제공하는 데이터베이스 개체입니다. Oracle에는 자동 증가 열을 설정하는 방법이 없기 때문에 Oracle 데이터베이스에서 기본 키 자동 증가 기능을 구현하기 위해 주로 시퀀스를 사용합니다.

오라클 데이터베이스에서 시퀀스는 실제로 테이블의 행에 대한 시퀀스 번호를 자동으로 생성할 수 있는 시퀀스 번호 생성기입니다. 주요 목적은 테이블의 기본 키 값을 생성하는 것입니다. SQL Server 및 MySQL의 자동 증가 필드와 동일합니다.

SQL Server에서는 기본 키를 정의할 때 ID 키워드를 사용할 수 있고, MySQL에서는 기본 키를 정의할 때 increment 키워드를 사용할 수 있습니다. Oracle 데이터베이스에서 자동 증가 필드를 사용하려면 먼저 시퀀스 객체를 정의한 후 데이터 삽입 시 [sequence object name.nextval]을 사용하여 기본 키에 자동 증가 데이터를 삽입해야 합니다.

시퀀스를 정의하려면 시퀀스를 정의하는 사용자에게 CREATE SEQUENCE 권한이 있어야 합니다. Oracle 데이터베이스에서 시퀀스를 정의하는 구문은 다음과 같습니다.

CREATE SEQUENCE 序列名 
[START WITH n] 
[INCREMENT BY n]
[MAXVALUE n|NOMAXVALUE]
[MINVALUE n|NOMINVALUE]
[CACHE n|NOCACHE]
[CYCLE|NOCYCLE]

매개변수 설명:

(1) INCREMENT BY: n이 양수 값인 경우 시퀀스가 ​​있음을 의미합니다. 증가하는 시퀀스, n이 음수 값인 경우 시퀀스가 ​​감소하는 시퀀스임을 나타냅니다. 생략하면 기본값은 1입니다.

(2) START WITH: 시퀀스의 시작 값을 정의합니다. 생략하면 기본값은 1입니다.

(3) MAXVALUE: 시퀀스 생성기가 생성할 수 있는 최대값을 정의합니다. NOMAXVALUE 옵션은 기본 옵션으로, 최대값 정의가 없음을 의미합니다. 이때 증가하는 수열의 경우 시스템이 생성할 수 있는 최대값은 감소하는 수열의 경우 10의 27승입니다. -1입니다.

(4) MINVALUE: 시퀀스 생성기가 생성할 수 있는 최소값을 정의합니다. NOMAXVALUE 옵션은 기본 옵션으로, 이때 내림차순의 경우 시스템이 생성할 수 있는 최소값은 증가하는 수열의 경우 -10의 26승입니다. 값은 1입니다.

(5) CYCLE|NOCYCLE: 시퀀스 생성기의 값이 한계 값에 도달할 때 루프할지 여부를 나타냅니다. CYCLE은 주기를 의미하고 NOCYCLE은 주기가 없음을 의미합니다.

(6) 캐시: 시퀀스를 저장할 메모리 블록의 크기를 정의하며 기본값은 20입니다. NOCACHE는 시퀀스의 메모리 버퍼링이 없음을 의미합니다.

예는 다음과 같습니다:

오라클 시퀀스란?

지식 확장:

순서 수정

형식:

ALTER SEQUENCE name [INCREMENT BY n]
    [MINVALUE n | NO MINVALUE] 
    [MAXVALUE n | NO MAXVALUE ]
    [MINVALUE n | NO MINVALUE ]
    [CACHE n ] 
    [CYCLE | NO CYCLE]

예는 다음과 같습니다.

오라클 시퀀스란?

추천 튜토리얼: "Oracle 비디오 튜토리얼

위 내용은 오라클 시퀀스란?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.