Heim >Datenbank >MySQL-Tutorial >Wie füge ich eine automatische Inkrementierung zu einer vorhandenen Primärschlüsselspalte in Oracle hinzu?

Wie füge ich eine automatische Inkrementierung zu einer vorhandenen Primärschlüsselspalte in Oracle hinzu?

Linda Hamilton
Linda HamiltonOriginal
2025-01-03 05:35:391007Durchsuche

How to Add Auto-Increment to an Existing Primary Key Column in Oracle?

Hinzufügen der automatischen Inkrementierung zu einer vorhandenen Spalte in Oracle

In Oracle, um die Funktion zur automatischen Inkrementierung zu einer bereits vorhandenen Spalte hinzuzufügen Um den Primärschlüssel einer Tabelle zu ermitteln, können Sie je nach verwendeter Oracle-Version unterschiedliche Methoden anwenden.

Für Oracle 11g und Prior

  • Erstellen Sie eine Sequenz, um die Spalte über einen Trigger zu erhöhen.
CREATE SEQUENCE t_seq
  START WITH 150111111
  INCREMENT BY 1;

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;

Für Oracle 12c und höher

  • Verwenden Sie die Spalte „Identität“. Funktion.
CREATE TABLE t
  (
    ID NUMBER GENERATED ALWAYS AS IDENTITY
    START WITH 150111111 INCREMENT BY 1,
    text VARCHAR2(50)
  );

Daten einfügen

Sobald die Funktion zur automatischen Inkrementierung konfiguriert ist, können Sie wie gewohnt Daten in die Tabelle einfügen.

Beispiel

Betrachten Sie eine Tabelle namens t mit einer Spalte namens ID als Primärschlüssel, und Sie möchten ihn für die automatische Inkrementierung ab 150111111 konfigurieren.

Verwendung der Sequenzmethode in Oracle 11g:

INSERT INTO t(text) VALUES('auto-increment test 1');

Verwendung der Identitätsspaltenmethode in Oracle 12c:

INSERT INTO t(text) VALUES('This table has an identity column');

Hinweis:

  • Die für die automatische Inkrementierung des Primärschlüssels erstellte Sequenz heißt ISEQ$$ und kann mit überprüft werden USER_SEQUENCES-Ansicht.
  • Die ALL_TAB_IDENTITY_COLS-Ansicht bietet Informationen zu den Identitätsspalten in der Datenbank.

Das obige ist der detaillierte Inhalt vonWie füge ich eine automatische Inkrementierung zu einer vorhandenen Primärschlüsselspalte in Oracle hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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