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>
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>
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>
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!