Oracle Database
시퀀스
수색…
통사론
- SEQUENCE SCHEMA.SEQUENCE {INCREMENT BY INTEGER | INTEGER로 시작 | MAXVALUE INTEGER | NOMAXVALUE INTEGER | MINVALUE INTEGER | 명목 정수 | 주기 정수 | NOCYCLE INTEGER | 캐시 | NOCACHE | 주문 | NOODER}
매개 변수
매개 변수 | 세부 |
---|---|
개요 | 스키마 이름 |
~에 의해 증분하다 | 숫자 사이의 간격 |
~으로 시작하다 | 첫 번째 번호 필요 |
최대 값 | 시퀀스의 최대 값 |
노마 엑 가치 | 최대 값 기본값 |
최소값 | 시퀀스의 최소값 |
nominvalue | 최소값이 기본값입니다. |
주기 | 이 값에 도달하면 시작으로 재설정 |
비순환 | 태만 |
은닉처 | 사전 할당 한도 |
노치 | 태만 |
주문 | 숫자의 순서 보장 |
노다 | 태만 |
시퀀스 만들기 : 예
목적
CREATE SEQUENCE 문을 사용하여 여러 사용자가 고유 한 정수를 생성 할 수있는 데이터베이스 개체 인 시퀀스를 만듭니다. 시퀀스를 사용하여 기본 키 값을 자동으로 생성 할 수 있습니다.
시퀀스 번호가 생성되면 커밋 또는 롤백 트랜잭션과 관계없이 시퀀스가 증가합니다. 두 사용자가 동일한 순서를 동시에 증가 시키면 순차 번호가 다른 사용자에 의해 생성되기 때문에 각 사용자가 획득하는 순차 번호에는 간격이있을 수 있습니다. 한 사용자는 다른 사용자가 생성 한 일련 번호를 절대 획득 할 수 없습니다. 한 사용자가 시퀀스 값을 생성 한 후에는 해당 사용자가 시퀀스가 다른 사용자에 의해 증가되었는지 여부에 관계없이 해당 값에 계속 액세스 할 수 있습니다.
시퀀스 번호는 테이블과 독립적으로 생성되므로 하나 또는 여러 테이블에 대해 동일한 시퀀스를 사용할 수 있습니다. 개별 순서 번호는 최종적으로 롤백 된 트랜잭션에서 생성되어 사용 되었기 때문에 생략 될 수 있습니다. 또한 한 사용자가 다른 사용자가 동일한 순서로 그리는 것을 인식하지 못할 수도 있습니다.
시 v 스가 작성된 후,시 v 스의 현재 값을 리턴하는 CURRVAL 의사 콜럼 또는시 v 스를 증가시키고 새 값을 리턴하는 NEXTVAL 의사 콜럼을 사용하여 SQL.에서 해당 값에 액세스 할 수 있습니다.
선결 요건
사용자 자신의 스키마에 순서를 작성하려면 CREATE SEQUENCE 시스템 권한이 있어야합니다.
다른 사용자의 스키마에 순서를 작성하려면 CREATE ANY SEQUENCE 시스템 권한이 있어야합니다.
순서 작성 : 예 다음 명령문은 oe 샘플 스키마에 customers_seq 시퀀스를 작성합니다. 이 시퀀스는 행이 customers 테이블에 추가 될 때 고객 ID 번호를 제공하는 데 사용될 수 있습니다.
CREATE SEQUENCE customers_seq
START WITH 1000
INCREMENT BY 1
NOCACHE
NOCYCLE;
customers_seq.nextval에 대한 첫 번째 참조는 1000을 반환하고 두 번째 참조는 1001을 반환합니다. 이후의 각 참조는 이전 참조보다 큰 값 1을 반환합니다.