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

Bagaimana untuk Mencipta Lajur Auto-Increment dalam Oracle?

Patricia Arquette
Lepaskan: 2025-01-23 23:41:08
asal
1016 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan