Bevorzugte Methode zum Hinzufügen eines Ersatzschlüssels zur vorhandenen Oracle DB-Tabelle

8

Ich muss eine vorhandene Tabelle in einer Oracle 10g DB mit ein paar tausend Datensätzen ändern, um einen Ersatz-Auto-Nummernschlüssel hinzuzufügen. Eine Möglichkeit, die mir in den Sinn kommt, ist

  1. Erstellen Sie eine neue Sequenz
  2. Erstellen Sie die ID-Spalte und lassen Sie Nullwerte zu
  3. Aktualisieren der ID-Spalte mit der Sequenz
  4. Ändern Sie die Tabelle, um "not null" und "primary key" für die neue ID-Spalte hinzuzufügen

Gibt es einen einfacheren oder effizienteren Weg dies zu tun (oder gibt es einen Grund, warum das nicht funktionieren würde)?

    
simon 18.02.2010, 09:09
quelle

1 Antwort

8

Ich würde es folgendermaßen machen:

  1. Erstellen Sie die Spalte " id ", die Nullwerte zulässt

  2. Geben Sie diese Abfrage aus:

    %Vor%
  3. Ändern Sie die Tabelle, um NOT NULL und PRIMARY KEY für die neue ID-Spalte

  4. hinzuzufügen
  5. Erstellen Sie die Sequenz und setzen Sie sie auf MAX(id) + 1 und verwenden Sie sie für die weiteren Inserts.

Quassnoi 18.02.2010, 09:18
quelle

Tags und Links