이 기사에서는 Oracle에 대한 관련 지식을 제공하고, Oracle의 시퀀스 SEQUENCE에 대해 자세히 설명합니다. 샘플 코드를 통해 자세히 소개합니다. 모든 사람의 공부나 업무에 일정한 참고 가치가 있으며, 모든 사람에게 도움이 되기를 바랍니다.
추천 튜토리얼: "Oracle Video Tutorial"
Oracle의 시퀀스는 고유한 값을 생성하는 것이 주요 기능인 데이터베이스 개체입니다. 시퀀스가 생성된 후 데이터 딕셔너리를 통해 시퀀스 객체를 찾을 수 있으므로, 시퀀스를 여러 객체에서 공유할 수 있습니다.
시퀀스는 CREATE SEQUENCE 구문을 사용하여 생성됩니다.
CREATE SEQUENCE sequence [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}];
예:
CREATE SEQUENCE invoice_seq INCREMENT BY 1 START WITH 1 MAXVALUE 9999999 NOCYCLE NOCACHE;
시퀀스가 생성되면 시퀀스 생성 코드는 데이터 사전에서 텍스트화되며 다음과 같이 user_objects 데이터 사전에서 볼 수 있습니다.
SELECT object_name,object_id,object_type FROM user_objects WHERE object_name = 'INVOICE_SEQ';
user_sequences에서 테이블 저장된 시퀀스 세부 정보:
SELECT sequence_name, min_value, max_value, increment_by, last_number FROM user_sequences;
다음과 같이 사용됩니다.
SELECT invoice_seq.CURRVAL,invoice_seq.NEXTVAL FROM DUAL; INSERT INTO invoice (invoice_id, vendor_id, invoice_number, invoice_total ) VALUES (invoice_seq.NEXTVAL, 10, 'INV' || invoice_seq.CURRVAL, 100 );
NEXTVAL 및 CURRVAL은 다음 컨텍스트에서 사용할 수 있습니다.
NEXTVAL 및 CURRVAL은 다음 컨텍스트에서 사용할 수 없습니다.
또한 ROLLBACK은 시퀀스 값을 롤백하지 않습니다.
예:
ALTER SEQUENCE invoice_seq INCREMENT BY 2 MAXVALUE 10 NOCACHE NOCYCLE;
시퀀스 수정 시 다음과 같은 제한 사항이 있습니다.
DROP SEQUENCE invoice_seq;
1. 시퀀스 생성
create sequence sq_recid minvalue 1 maxvalue 999999 increment by 1 start with 1 noCYCLE;
2. 테이블에 시퀀스를 수동으로 삽입할 수도 있습니다. C#
create or replace trigger trg_test before insert on test for each row begin select sq_recid.nextval into :new.ID from dual; end; alter trigger trg_test enable;
추천 튜토리얼: "
Oracle Video Tutorial위 내용은 오라클 시퀀스 SEQUENCE 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!