Heim >Datenbank >MySQL-Tutorial >Wie kann ich vorhandenen Spalten in Oracle-Datenbanken automatische Inkrementierungsfunktionen hinzufügen?
Automatische Inkrementierung vorhandener Spalten in Oracle-Datenbanken
Das Hinzufügen einer Funktion zur automatischen Inkrementierung zu einer vorhandenen Spalte in Oracle kann je nach Bedarf durch unterschiedliche Ansätze erreicht werden auf der Oracle-Version.
Oracle 12c und höher: Verwenden von Identität Spalten
Oracle 12c führte die IDENTITY-Spaltenfunktion ein, die die automatische Inkrementierung vereinfacht:
CREATE TABLE t ( ID NUMBER GENERATED ALWAYS AS IDENTITY START WITH 150111111 INCREMENT BY 1, text VARCHAR2(50) );
Oracle 11g und Vorgänger: Sequenz und Trigger
Für Oracle-Versionen vor 12c können Sie eine Kombination aus Sequenz und verwenden Auslöser:
CREATE SEQUENCE t_seq START WITH 150111111 INCREMENT BY 1;
ALTER TABLE t ADD CONSTRAINT id_pk PRIMARY KEY (ID);
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;
Dieser Auslöser füllt die ID-Spalte automatisch mit Werten aus der Sequenz.
Beispielverwendung:
Bei beiden Methoden füllen Einfügungen die ID-Spalte mit automatisch inkrementierenden Werten beginnend bei 150111111.
INSERT INTO t(text) VALUES('auto-increment test');
Die Abfrage der Tabelle bestätigt die automatisch inkrementierten IDs:
SELECT * FROM t; ID TEXT ------------------------- ---------------------------------------- 150111111 This table has an auto-incrementing column
Hinweis: Oracle erstellt implizit eine Sequenz mit dem Namen ISEQ$$, wenn Identität verwendet wird Spalten.
Das obige ist der detaillierte Inhalt vonWie kann ich vorhandenen Spalten in Oracle-Datenbanken automatische Inkrementierungsfunktionen hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!