기존 Oracle 테이블 열 자동 증가
Oracle에서는 기본 키가 있는 기존 열에 자동 증가 기능을 추가할 수 있습니다. Oracle 버전에 따라 방법이 다릅니다.
Oracle 11g 및 이전
열 값을 증가시키는 시퀀스 생성:
CREATE SEQUENCE t_seq START WITH 150111111 INCREMENT BY 1;
트리거를 사용하여 삽입 중에 열에 다음 시퀀스 값을 할당:
CREATE OR REPLACE TRIGGER t_trg BEFORE INSERT ON t FOR EACH ROW WHEN (new.id IS NULL) BEGIN SELECT t_seq.NEXTVAL INTO :new.id FROM dual; END;
Oracle 12c 이상
Oracle 12c에서는 시퀀스나 트리거 없이 자동 증가 값을 허용하는 ID 열을 도입했습니다.
CREATE TABLE t ( ID NUMBER GENERATED ALWAYS AS IDENTITY START WITH 150111111 INCREMENT BY 1, text VARCHAR2(50) );
열이 제자리에 있으면 지정된 시작 값부터 새 행이 자동 증가됩니다.
Oracle 11g 사용 예시
제공 테이블:
TABLE t ( SEQ_ID NUMBER(10) NOT NULL );
시퀀스 "t_seq" 및 트리거 "t_trg"를 생성한 후 새 행을 삽입합니다.
INSERT INTO t(text) VALUES('auto-increment test 1'); INSERT INTO t(text) VALUES('auto-increment test 2');
테이블을 쿼리하여 자동 증가를 확인합니다.
SELECT * FROM t;
Oracle 사용 예 12c
테이블 정의:
CREATE TABLE t ( ID NUMBER GENERATED ALWAYS AS IDENTITY START WITH 150111111 INCREMENT BY 1, text VARCHAR2(50) );
새 행 삽입:
INSERT INTO t(text) VALUES('This table has an identity column');
확인을 위해 테이블 쿼리:
SELECT * FROM t;
두 Oracle 버전 모두 이제 "ID" 열이 지정된 시작부터 자동으로 증가합니다. 1단계의 값(150111111).
위 내용은 기존 Oracle 테이블 열에 자동 증가 기능을 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!