Heim > Datenbank > MySQL-Tutorial > Wie erstelle ich automatisch inkrementierende Spalten in Oracle?

Wie erstelle ich automatisch inkrementierende Spalten in Oracle?

Patricia Arquette
Freigeben: 2025-01-23 23:41:08
Original
971 Leute haben es durchsucht

How to Create Auto-Increment Columns in Oracle?

Auto-Inkrement-Spalte in der Oracle-Datenbank erstellen

In Oracle-Versionen vor 12c gab es kein Konzept für die automatische Inkrementierung von Spalten. Es gibt jedoch einige Möglichkeiten, eine ähnliche Funktionalität zu erreichen.

Methode 1: Sequenzen und Trigger verwenden

Eine Möglichkeit besteht darin, eine Sequenz und einen Trigger zu erstellen, der den Wert erhöht, bevor der Datensatz eingefügt wird.

<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>
Nach dem Login kopieren

Methode 2: IDENTITY-Spalte verwenden (Oracle 12c und höher)

Oracle 12c führt den Spaltendatentyp IDENTITY ein, der automatisch eindeutige Werte generieren kann.

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

Methode 3: Sequenz als Standardwert verwenden (Oracle 12c und höher)

Ein anderer Ansatz besteht darin, eine Sequenz als Standardwert für die Spalte zu verwenden.

<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie erstelle ich automatisch inkrementierende Spalten in Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage