Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mencipta Lajur Auto-Increment dalam Oracle?

Bagaimana untuk Mencipta Lajur Auto-Increment dalam Oracle?

Patricia Arquette
Patricia Arquetteasal
2025-01-23 23:41:081018semak imbas

How to Create Auto-Increment Columns in Oracle?

Buat lajur kenaikan automatik dalam pangkalan data Oracle

Dalam versi Oracle sebelum 12c, tiada konsep lajur kenaikan automatik. Walau bagaimanapun, terdapat beberapa cara kita boleh mencapai fungsi yang serupa.

Kaedah 1: Gunakan jujukan dan pencetus

Salah satu cara ialah dengan mencipta jujukan dan pencetus yang menambah nilai sebelum memasukkan rekod.

<code class="language-sql">CREATE SEQUENCE dept_seq START WITH 1;

CREATE TABLE departments (
  ID           NUMBER(10)    NOT NULL,
  DESCRIPTION  VARCHAR2(50)  NOT NULL
);

ALTER TABLE departments ADD (
  CONSTRAINT dept_pk PRIMARY KEY (ID)
);

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>

Kaedah 2: Gunakan lajur IDENTITI (Oracle 12c dan ke atas)

Oracle 12c memperkenalkan jenis data lajur IDENTITY, yang boleh menjana nilai unik secara automatik.

<code class="language-sql">CREATE TABLE t1 (
    c1 NUMBER GENERATED by default on null as IDENTITY,
    c2 VARCHAR2(10)
);</code>

Kaedah 3: Gunakan jujukan sebagai nilai lalai (Oracle 12c dan ke atas)

Pendekatan lain ialah menggunakan jujukan sebagai nilai lalai untuk lajur.

<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
);

ALTER TABLE departments ADD (
  CONSTRAINT dept_pk PRIMARY KEY (ID)
);</code>

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Lajur Auto-Increment dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn