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
Freigeben: 2025-01-03 05:35:39
Original
1003 Leute haben es durchsucht

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

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

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

Verwendung der Identitätsspaltenmethode in Oracle 12c:

INSERT INTO t(text) VALUES('This table has an identity column');
Nach dem Login kopieren

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!

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