Nun. Oracle verwendet Sequenzen und Standardwerte für die IDENTITY-Funktionalität in 12c. Daher müssen Sie über Sequenzen für Ihre Frage wissen.
Erstellen Sie zuerst eine Test-Identitätstabelle.
%Vor%Lassen Sie uns zuerst Ihren Sequenznamen suchen, der mit dieser Identitätsspalte erstellt wurde. Dieser Sequenzname ist ein Standardwert in Ihrer Tabelle.
%Vor%für mich ist dieser Wert "ISEQ $$ _ 193606"
fügen Sie einige Werte ein.
%Vor%füge dann den Wert ein und finde die Identität.
%Vor%Sie sollten Ihren Identitätswert sehen. Wenn Sie in einem Block arbeiten möchten, verwenden Sie
%Vor%Letzte ID ist mein Identitätsspaltenname.
Es scheint, dass Oracle IDENTITY
implementiert hat, nur um zu sagen, dass sie Identitäten unterstützen. Alles wird noch mit SEQUENCES
implementiert und manchmal müssen Sie auf SEQUENCE
zugreifen, um einen Teil der Arbeit zu erledigen (d. H. Die zuletzt eingefügte IDENTITY
abrufen).
Es gibt keine Möglichkeit, die IDENTITY
ähnlich wie MySQL, SQL Server, DB2 usw. abzurufen. Sie müssen sie mit SEQUENCE
abrufen.
IDENTITY
-Spalte verwendet ein SEQUENCE
"unter der Haube" - Erstellen und Löschen von Sequenzen automatisch mit der verwendeten Tabelle.
Sie können auch Parameter für Start mit und Inkrement mit angeben
Beginnen Sie mit 1000 und erhöhen Sie um 2. Es ist wirklich sehr bequem, IDENTITY
zu verwenden, wenn Sie seine Werte nicht direkt verwenden möchten.
Aber wenn Sie die Sequenz direkt bedienen müssen, sollten Sie sie verwenden
eine weitere Option, die in Oracle 12c verfügbar ist - Spaltenstandardwerte. Sutch Standard
Werte könnten aus der Sequenz nextval
oder currval
generiert werden. Damit Sie einen verständlichen Sequenznamen haben und ihn ohne Trigger als "Identität" verwenden können.
Sie können immer anrufen: my_new_table_seq.currval
.
Es ist möglich, die ID aus SEQUENCE
in der insert-Anweisung mit RETURNING
clause zu generieren.
Erstellen Sie beispielsweise eine temporäre Tabelle:
%Vor%Machen Sie einen Insert, der diesen Wert in der temporären Tabelle speichert:
%Vor%Jetzt haben Sie "lokale" ID eingefügt.
%Vor%Bitte überprüfen Sie
%Vor%Es wird Ihnen helfen, die zuletzt eingefügte Zeile abzurufen