Heim > Datenbank > MySQL-Tutorial > Wie kann ich eine vorhandene Oracle-Primärschlüsselspalte automatisch inkrementieren lassen?

Wie kann ich eine vorhandene Oracle-Primärschlüsselspalte automatisch inkrementieren lassen?

Linda Hamilton
Freigeben: 2024-12-27 00:28:17
Original
144 Leute haben es durchsucht

How Can I Make an Existing Oracle Primary Key Column Auto-Increment?

Auto-Inkrement-Transformation für vorhandene Oracle-Tabellenspalten

Problem:

Wie kann eine vorhandene Spalte, die bereits als gekennzeichnet ist der Primärschlüssel so konfiguriert werden, dass er in einer Oracle-Datenbank automatisch inkrementiert wird? Die Spalte wurde mit dem Datentyp VARCHAR2(9 BYTE) erstellt.

Lösung:

Oracle 11g und Prior (Pre-12c): Sequenz und Auslöser

  1. Erstellen Sie einen Sequenz: Erstellen Sie eine Sequenz wie t_seq mit dem Startwert 150111111 und inkrementellen Schritten von 1.
  2. Implementieren Sie einen Trigger: Entwickeln Sie einen BEFORE INSERT-Trigger, der die Spalte mit füllt der nächste Wert aus der Sequenz, wenn der Spaltenwert ist NULL.

Oracle 12c und höher: Identitätsspalte

  1. Identitätsspalte verwenden: Definieren Sie eine IDENTITÄTSSpalte in der Tabelle Erstellungsanweisung, beginnend mit 150111111 und inkrementell um 1.

Beispiel:

CREATE TABLE t (
    ID NUMBER GENERATED ALWAYS AS IDENTITY
    START WITH 150111111 INCREMENT BY 1,
    text VARCHAR2(50)
);
Nach dem Login kopieren

Vorteile von Identitätsspalten:

  • Vereinfacht die automatische -Inkrementelle Implementierung ohne die Notwendigkeit von Sequenzen oder Triggern.
  • Sorgt dafür eindeutige, sequentielle Werte für die angegebene Spalte.

Zusätzliche Informationen:

  • Oracle generiert eine Sequenz (ISEQ$$) zur Unterstützung der Identitätsspalte .
  • Überwachen Sie die Informationen zur automatischen Inkrementierung mithilfe der Ansicht ALL_TAB_IDENTITY_COLS.

Das obige ist der detaillierte Inhalt vonWie kann ich eine vorhandene Oracle-Primärschlüsselspalte automatisch inkrementieren lassen?. 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