집 >데이터 베이스 >MySQL 튜토리얼 >Oracle 데이터베이스에서 자동 증가 열을 만드는 방법은 무엇입니까?
Oracle의 열 자동 증가: 종합 가이드
버전 12c 이전의 Oracle 데이터베이스는 기본 자동 증가 열을 제공하지 않았습니다. 그러나 시퀀스와 트리거를 사용하면 이 기능을 효과적으로 복제할 수 있습니다. Oracle 12c 이상 버전에서는 진정한 ID 열을 도입하여 보다 간소화된 접근 방식을 제공합니다.
12c 이전: 시퀀스 및 트리거를 사용한 자동 증가 시뮬레이션
자동 증가 ID가 필요한 테이블을 만드는 것부터 시작해 보겠습니다.
<code class="language-sql">CREATE TABLE departments ( ID NUMBER(10) NOT NULL, DESCRIPTION VARCHAR2(50) NOT NULL );</code>
다음으로 고유 ID 값을 생성하는 시퀀스를 만듭니다.
<code class="language-sql">CREATE SEQUENCE dept_seq START WITH 1;</code>
마지막으로 트리거는 삽입 시 시퀀스 값이 ID
열에 자동으로 할당되도록 보장합니다.
<code class="language-sql">CREATE OR REPLACE TRIGGER dept_bir BEFORE INSERT ON departments FOR EACH ROW BEGIN SELECT dept_seq.NEXTVAL INTO :new.id FROM dual; END;</code>
Oracle 12c 이상: ID 열
Oracle 12c는 기본 ID 열을 도입하여 프로세스를 크게 단순화했습니다.
<code class="language-sql">CREATE TABLE t1 ( c1 NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY, c2 VARCHAR2(10) );</code>
Oracle 12c의 고급 옵션
Oracle 12c는 추가 사용자 정의 기능을 제공합니다.
<code class="language-sql">CREATE TABLE t1 ( c1 NUMBER GENERATED ALWAYS AS IDENTITY(START WITH 1 INCREMENT BY 1), c2 VARCHAR2(10) );</code>
<code class="language-sql">CREATE SEQUENCE dept_seq START WITH 1; CREATE TABLE departments ( ID NUMBER(10) DEFAULT dept_seq.NEXTVAL NOT NULL, DESCRIPTION VARCHAR2(50) NOT NULL );</code>
이러한 방법은 버전에 관계없이 Oracle 데이터베이스에서 자동 증가 열을 관리하기 위한 효율적이고 유연한 솔루션을 제공합니다.
위 내용은 Oracle 데이터베이스에서 자동 증가 열을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!