Automatische Inkrementierung für bereits vorhandene Oracle-Spalten
Während das Hinzufügen der Funktion zur automatischen Inkrementierung zu einer vorhandenen Spalte in Oracle nicht nativ unterstützt wird, Um dies zu erreichen, können verschiedene Ansätze eingesetzt werden.
11g und Prior: Sequenz und Trigger
Für Oracle-Versionen 11g und früher können eine Sequenz und ein Trigger verwendet werden:
Beispiel:
-- Create sequence CREATE SEQUENCE t_seq START WITH 150111111 INCREMENT BY 1; -- Alter table ALTER TABLE t ADD CONSTRAINT id_pk PRIMARY KEY (ID); -- Create trigger 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;
12c und höher: Identität Spalte
Oracle 12c hat die Identitätsspaltenfunktion eingeführt, die eine automatische Inkrementierung innerhalb der Tabelle selbst ermöglicht:
Beispiel:
CREATE TABLE t ( ID NUMBER GENERATED ALWAYS AS IDENTITY START WITH 150111111 INCREMENT BY 1, text VARCHAR2(50) );
Bitte beachten Sie, dass diese Ansätze keine vorhandenen Werte in der Spalte aktualisieren. Um bestehende Werte zu ändern, wäre eine separate Update-Abfrage notwendig.
Das obige ist der detaillierte Inhalt vonWie kann ich die Funktion zur automatischen Inkrementierung zu vorhandenen Oracle-Spalten hinzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!