Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie mithilfe der Oracle Identity Column auf einfache Weise eine automatisch generierte numerische Spalte für eine Tabelle definieren.

Einführung in Oracle identity column

Oracle 12c hat eine neue Methode eingeführt, mit der Sie eine Identitätsspalte für eine Tabelle definieren können, die der Spalte AUTO_INCREMENT in MySQL oder IDENTITY in SQL Server ähnelt.

Die Identitätsspalte ist für die Ersatz-Primärschlüsselspalte sehr nützlich., Wenn Sie eine neue Zeile in die Spalte Identität einfügen, generiert Oracle automatisch einen sequentiellen Wert und fügt ihn in die Spalte ein.

Um eine Identitätsspalte zu definieren, verwenden Sie die Identitätsklausel wie unten gezeigt:

Zunächst ist das Schlüsselwort GENERATED obligatorisch.

Zweitens können Sie eine Option zum Generieren von Identitätswerten angeben:

  • GENERATED ALWAYS: Oracle generiert immer einen Wert für die Identitätsspalte. Der Versuch, einen Wert in die Identitätsspalte einzufügen, führt zu einem Fehler.,
  • GENERATED BY DEFAULT: Oracle erzeugt einen Wert für die Identitätsspalte, wenn Sie keinen Wert. Wenn Sie einen Wert angeben, fügt Oracle diesen Wert in die Spalte Identität ein. Für diese Option gibt Oracle einen Fehler aus, wenn Sie einen Nullwert in die Identitätsspalte einfügen.
  • GENERATED BY DEFAULT ON NULL: Oracle generiert einen Wert für die Identitätsspalte, wenn Sie einen Nullwert oder überhaupt keinen Wert angeben.

Drittens können Sie eine Reihe von Optionen für die Identitätsspalte haben.,

  • START WITH initial_value steuert den Anfangswert für die Identitätsspalte. Der Standard-Anfangswert ist 1.
  • INCREMENT BY internval_value definiert das Intervall zwischen den generierten Werte. Standardmäßig ist der Intervallwert 1.
  • CACHE definiert eine Reihe von Werten, die Oracle vorher generieren sollte, um die Leistung zu verbessern. Sie verwenden diese Option für die Spalte mit einer hohen Anzahl von Einfügungen.

Oracle identity-Spalte Beispiele

nehmen wir einige Beispiele für die Verwendung der Oracle identity-Spalten.,

A) ERZEUGT IMMER Beispiel

Die folgende Anweisung erzeugt eine Tabelle mit dem Namen identity_demo, die aus einer Identitätsspalte besteht:

Die folgende Anweisung fügt eine neue Zeile in die identity_demo Tabelle ein:

Weil wir haben keinen Wert für die Spalte id angegeben, Oracle hat automatisch einen sequentiellen Wert ab 1 generiert.,

Die folgende Anweisung versucht, einen Wert in die id Identitätsspalte einzufügen:

Oracle hat einen Fehler ausgegeben:

Da die ID-Spalte als GENERATED ALWAYS definiert wurde, konnte kein bereitgestellter Wert akzeptiert werden.,

B) GENERATED BY DEFAULT example

Let’s change the id column to GENERATED BY DEFAULT:

The following statement inserts a new row into the identity_demo table:

It worked as expected.,

Die folgende Anweisung fügt eine neue Zeile in die Tabelle identity_demo mit einem angegebenen Wert für die Spalte id ein:

In diesem Beispiel hat Oracle den angegebenen Wert verwendet und in die Tabelle eingefügt.,Erstellt zuerst die identity_demo – Tabelle neu, deren id – Spalte als Identitätsspalte definiert ist, wobei der Anfangswert bei 100 beginnt:

Zweitens fügen Sie eine Zeile in die identity_demo – Tabelle ein:

Drittens, abfrage daten aus die identity_demo tabelle:

Wie sie sehen können, die initial wert der id Spalte ist 100 wie in identity Klausel angegeben.,

E) INKREMENTIEREN SIE MIT der Option example

Ändern Sie zunächst die ID-Spalte der Tabelle identity_demo, die sowohl die Optionen als auch INCREMENT BY enthält.

Zweite, einfügen zwei zeilen in die identity_demo tabelle:

Dritte, abfrage daten aus der tabelle zu überprüfen die einfügungen:

Wie Sie sehen, hat die erste Zeile den ID-Wert 10. Die zweite Zeile hat den ID-Wert 20., Dies haben wir für die ID-Spalte definiert, die mit 10 beginnen und für die neue Zeile um 10 erhöhen soll.

Oracle identity column restrictions

Die Identity-Spalten unterliegen den folgenden Einschränkungen:

  • Jede Tabelle hat eine und nur eine Identity-Spalte.
  • Der Datentyp der Identitätsspalte muss ein numerischer Datentyp sein. der benutzerdefinierte Datentyp darf nicht mit der identity Klausel verwendet werden.
  • Die Identitätsspalte wird nicht von der CREATE TABLE AS SELECTAnweisung vererbt.,
  • Die Identitätsspalte kann keine andere DEFAULT Einschränkung haben.
  • Der Verschlüsselungsalgorithmus für verschlüsselte Identitätsspalten kann abgeleitet werden, daher sollten Sie einen starken Verschlüsselungsalgorithmus verwenden.
  • Die Inline-Einschränkung der Identitätsspalte darf nicht mit der NOT NULL und NOT DEFERRABLE – Einschränkung in Konflikt stehen, die in der Identitätsklausel angegeben ist.

In diesem Tutorial haben Sie gelernt, wie Sie die Oracle Identity-Spalte verwenden, mit der Sie einfach eine automatisch generierte numerische Spalte für eine Tabelle definieren können.,

  • War dieses tutorial hilfreich?
  • YesNo

Articles

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.