Heim > Datenbank > MySQL-Tutorial > Wie kann ich vorhandenen Spalten in Oracle-Datenbanken automatische Inkrementierungsfunktionen hinzufügen?

Wie kann ich vorhandenen Spalten in Oracle-Datenbanken automatische Inkrementierungsfunktionen hinzufügen?

DDD
Freigeben: 2024-12-26 09:46:10
Original
556 Leute haben es durchsucht

How Can I Add Auto-Incrementing Functionality to Existing Columns in Oracle Databases?

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

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:

  1. Eine Sequenz erstellen:
CREATE SEQUENCE t_seq START WITH 150111111 INCREMENT BY 1;
Nach dem Login kopieren
  1. Tabelle ändern und Primärschlüssel hinzufügen:
ALTER TABLE t ADD CONSTRAINT id_pk PRIMARY KEY (ID);
Nach dem Login kopieren
  1. Erstellen Auslöser:
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

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

Die Abfrage der Tabelle bestätigt die automatisch inkrementierten IDs:

SELECT * FROM t;

ID                        TEXT
------------------------- ----------------------------------------
150111111 This table has an auto-incrementing column
Nach dem Login kopieren

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage