FAQ: Auto-Increment Spalten unter Oracle 11g

In diesem Beitrag gehe ich auf das Theme „Auto-Increment Spalten“ ein, wie diese in bis einschliesslich Oracle 11g zum Einsatz kommen. In Oracle 12c gibt es zu diesem Thema eine Änderung. Ich werde diesen Beitrag später an 12c anpassen.

Bis dahin möchte ich auf folgende Punkte eingehen:

  • Was ist eine Auto-Increment Spalte?
  • Wofür wird Auto-Increment Spalte eingesetzt?
  • Wie erstellt man eine Auto-Increment Spalte in Oracle?

Was ist eine Auto-Increment Spalte?

Eine Auto Increment Spalten ist eine Spalte in einer Datenbanktabelle deren Wert sich mit jedem eingefügtem Datensatz in die Tabelle automatisch erhöht.

Wofür wird Auto-Increment Spalte eingesetzt?

Die Auto-Increment Spalte wird in der Regel als Primärschlüssel in einer Tabelle eingesetzt. Wie der Name auch sagt, erhöht sich der Wert dieser Spalte automatisch. Dieses Kriterium garantiert, dass die jede Zeile einen eindeutigen Wert erhält.

Ausserden bietet die Auto-Increment Spalte auch Information über die Reihenfolge der Transaktionen. Je höher der Wert, desto später wurde der Datensatz in die Tabelle eingefügt. Dies könnte evtl. für die spätere Suche nach Datensätzen nützlich sein. So z.B.

  • Suche nach den neuesten Einträge
  • Suche an den N bestimmten Datensätzen. Wie die letzten 100 oder zwischen N und M
  • Ermittlung der Reihenfolge der Datensätze in einer Umgebung mit mehreren Benutzern

Wie erstellt man eine Auto-Increment Spalte in Oracle?

  1. Erstelle eine Tabelle mit einer Spalte, die Auto Increment enthalten soll
  2. Erstelle eine Sequence, die mit der Spalte in Verbindung stehen wird
  3. Erstelle einen Trigger auf der Tabelle, der vor dem Einfügen in die Tabelle die Auto Increment Spalte befühlt.

Praktisches Beispiel: Auto Increment Spalte

1. Tabelle anlegen:
Ich lege eine Tabelle ora600_autoinc mit 2 Spalten an. ID ist der Primärschlüssel und wird als Auto Increment Spalte verwendet.

2. Sequence anlegen:

3. Trigger anlegen:
Der Trigger zündet vor dem Anlegen eines Datensatzes, zieht die nächsthöhere Sequence und speichert diese in der Spalte ID.

Nach dem die Vorbereitungen getroffen wurden und die Datenbankobjekte angelegt sind, können wir ein Paar Datensätze in die Tabelle einfügen und uns die Ergebnisse anschauen.

In folgendem Beispiel werde ich folgende Datensätze einfügen

ID TXT
Zeile1 1 Datensatz1
Zeile2 2 Datensatz2

Wie erwartet, die Spalte ID wurde automatisch hochgezählt.

Kommentar verfassen