Oracle Identity -Spalte

Oracle Identity -Spalte
In diesem Tutorial lernen Sie, wie Sie die Oracle Identity -Spalte verwenden und arbeiten, um eine autogenerierte numerische Spalte in einer Tabelle zu definieren.

Wenn Sie jemals mit MySQL -Datenbanken gearbeitet haben, sind Sie möglicherweise mit der Spalte auto_increment vertraut. In Oracle verwenden wir eine Identitätsspalte, damit die Datenbankmotor in einem bestimmten Intervall automatisch einen numerischen Wert für jede Zeile generiert wird, die der Tabelle hinzugefügt wurde.

Oracle Identity -Spalte

Die Oracle Identity -Spalte ist in Version 12c und oben verfügbar. Die Identitätsspalte generiert automatisch einen numerischen Wert für jede in die Tabelle eingefügte Zeile.

Da die Datenbank -Engine für jede Zeile, die der Tabelle hinzugefügt wurde, einen eindeutigen Wert generiert.

In Oracle definieren wir eine Identitätsspalte unter Verwendung der folgenden Syntax:

Generiert [immer | Standardmäßig [auf Null]]]
Als Identität [(Identity_Options)]

Die Anweisungsparameter enthalten, wie oben zu sehen, Folgendes:

  1. Generiert - Wir beginnen mit dem generierten Schlüsselwort, wobei die Werte von der Datenbank -Engine automatisch generiert werden.
  2. Immer - ähnlich stellt dieser Wert sicher, dass nur die Datenbank -Engine der Spalte Werte hinzufügen kann. Der Versuch, manuell Werte hinzuzufügen, führt zu einem Fehler.
  3. Standardmäßig - Dies führt zu einem Fehler, wenn Sie der Spalte einen Nullwert angeben.
  4. Standardmäßig bei NULL - Oracle generiert einen Wert, anstatt einen Fehler bei der NULL -Eingabe zurückzugeben.
  5. Als Identität - dies definiert, dass dies eine Identitätsspalte ist.
  6. Beginnen Sie mit dem Wert - definiert den Anfangswert, der für die Identitätsspalte verwendet wird. Standardmäßig beginnt der Wert bei 1.
  7. Inkrement nach Wert - definiert den Intervallwert zwischen den generierten Werten. Standardmäßig verwendet die Funktion ein Intervall von 1.
  8. Cache - Definiert die Anzahl der Werte, die die Datenbank -Engine im Voraus generiert, um die Leistung zu erhöhen. Diese Option ist nützlich, wenn Sie viele Datensätze autogenerieren müssen.

Oracle Identity -Spalten

Lassen Sie uns grundlegende Beispiele für die Verwendung der Identitätsspalte in Oracle -Datenbanken entdecken.

Oracle -Identitätsspalte erstellen

Die häufigste und empfohlene Art, eine Identitätsspalte für eine Tabelle zu erstellen, ist während der Erstellung.

Ein Beispiel unten zeigt, wie wir dies erreichen können:

Tischprodukte erstellen (
product_id nummer immer als identität generiert,
product_name varchar2 (255) nicht null,
Mengenzahl nicht NULL -Überprüfung (Menge> 0),
Preisnummer,
Primärschlüssel (product_id)
);

Die obige Anweisung erstellt eine Tabelle namens Produkte mit einer Identitätsspalte von product_id.

Wir können dann einige Beispieldatensätze in die Tabelle einfügen wie:

Einfügen in Produkte (product_name, Menge, Preis) Werte ('Microsoft Volterra', 0, 599);

In diesem Fall haben wir den Wert für die Spalte product_id in der obigen Tabelle nicht angegeben. Dadurch kann die Datenbankmotor Werte für die hinzugefügten Spalten automatisch generieren. Wie bereits erwähnt, startet Oracle mit dem Wert von 1 und steigt für jede hinzugefügte Zeile um 1 an.

Wie bereits erwähnt, führt der Versuch, einen Wert für die Identitätsspalte hinzuzufügen, zu einem Fehler:

In Produkte (product_id, product_name, Menge, Preis) Werte (2, 'Microsoft Volterra', 10, 599) einfügen;

Resultierender Fehler:

SQL-Fehler: ORA-32795: kann nicht in eine generierte Identitätsspalte einfügen

Dies liegt daran, dass die Identitätsspalte so eingestellt ist, dass es immer generiert wird.

Beispiel 2 - Die standardmäßige Oracle -Identität erzeugt.

Wir können auch die Identitätsspalte von Generation immer auf generiert ändern, die standardmäßig generiert wurden, als:

Tischprodukte erstellen (
product_id nummer, die standardmäßig als Identität generiert wird,
product_name varchar2 (255) nicht null,
Mengenzahl nicht NULL -Überprüfung (Menge> 0),
Preisnummer,
Primärschlüssel (product_id)
);

In diesem Fall können wir manuell einen Wert für die Spalte product_id hinzufügen.

Einfügen in Produkte (product_id, product_name, Menge, Preis) Werte (1, 'Microsoft Volterra', 0, 599);

Wenn wir keinen Wert für die Spalte angeben, generiert die Datenbankmotor sie automatisch.

Sie können keinen Nullwert in eine Identitätsspalte einfügen, wie oben definiert.

Beispiel 3
Wir können auch den Beginn mit und die Intervallwerte während der Erstellung von Tabellen wie gezeigt definieren:

Tischprodukte erstellen (
product_id -Nummer, die standardmäßig als Identität generiert werden, beginnen mit 10 Inkrement,
product_name varchar2 (255) nicht null,
Mengenzahl nicht NULL -Überprüfung (Menge> 0),
Preisnummer,
Primärschlüssel (product_id)
);

In diesem Fall beginnen die autogenerierten Werte bei zehn und erhöhen sich für jede neue Zeile, die der Tabelle hinzugefügt wurde.

Punkte zu beachten

Obwohl eine Identitätsspalte bei der Arbeit mit einem großen Datensatz hohe Bequemlichkeit bietet, ist sie mit Einschränkungen verbunden. Diese beinhalten:

  1. Eine Tabelle kann nur eine Identitätsspalte enthalten.
  2. Eine Identitätsspalte kann keine Standardbeschränkung enthalten.
  3. Eine Tabelle erstellen kann eine Identitätsspalte nicht als Auswahlanweisung erben.
  4. Der Wert einer Identitätsspalte kann nur ein numerischer Typ sein.

Abschluss

In diesem Beitrag haben Sie die verschiedenen Methoden und Techniken der Arbeit mit der Identitätsspalte in Oracle -Datenbanken entdeckt.