Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Funktionen » SQL-Funktionen (E-O)

 

GET_IDENTITY-Funktion [Verschiedene]

Weist einer Autoinkrement-Spalte Werte zu. Diese Funktion kann als Alternative zur Autoinkrement-Funktion zum Generieren von Zahlen verwendet werden.

Syntax
GET_IDENTITY( Tabellenname [, Zuzuordnende_Zahl ] )
Parameter
  • Tabellenname   Eine Zeichenfolge, die den Namen der Tabelle und optional auch den Eigentümernamen enthält

  • Zuzuordnende_Zahl   Die für die Identität zuzuordnende Ausgangszahl. Standardwert ist "1".

Rückgabe

UNSIGNED BIGINT

Bemerkungen

Zum Generieren von IDs ist die Verwendung von Autoinkrement- (autoincrement) oder von globalen Autoinkrement-Werten (global autoincrement) nach wie vor die effizienteste Methode; diese Funktion kann jedoch als Alternative verwendet werden. Die Funktion geht davon aus, dass für die Tabelle eine Autoinkrement-Spalte definiert ist. Sie gibt den nächsten verfügbaren Wert zurück, der für die Autoinkrement-Spalte der Tabelle generiert würde, und reserviert diesen Wert, damit ihn nicht eine andere Verbindung standardmäßig verwendet.

Die Funktion gibt eine Fehlermeldung zurück, sollte die Tabelle nicht gefunden werden, und NULL, wenn die Tabelle keine Autoinkrement-Spalte enthält. Wenn mehrere Autoinkrement-Spalten vorhanden sind, verwendet die Funktion die erste gefundene Spalte.

Zuzuordnende_Zahl ist die Anzahl der zu reservierenden Werte. Wenn der Wert Zuzuordnende_Zahl größer als 1 ist, reserviert die Funktion auch die restlichen Werte. Die nächste Zuweisung verwendet die aktuelle Zahl und addiert den Wert von Zuzuordnende_Zahl. Dies führt dazu, dass die Anwendung get_identity weniger häufig ausführen muss.

Nach dem Ausführen der GET_IDENTITY-Funktion ist kein COMMIT mehr notwendig, und daher kann dieselbe Verbindung zum Aufruf der Funktion und zum Einfügen von Zeilen verwendet werden. Wenn ID-Werte für mehrere Tabellen benötigt werden, können diese über einmaliges Aufrufen der SELECT-Anweisung, die mehrere Aufrufe der GET_IDENTITY-Funktion beinhaltet, bezogen werden. Siehe hierzu das Beispiel.

Die GET_IDENTITY-Funktion ist eine nicht-deterministische Funktion. Aufeinanderfolgende Aufrufe können unterschiedliche Werte zurückgeben. Der Optimierer behält die Ergebnisse der Funktion GET_IDENTITY nicht im Cache.

Weitere Hinweise zu nicht-deterministischen Funktionen finden Sie unter Cachebenutzung für Funktionen.

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

Die folgende Anweisung gibt den nächsten verfügbaren Wert für die autoinkrementierende Spalte (ID) der Tabelle Customers zurück. Die zurückgegebene Nummer und die folgenden neun Werte sind reserviert:

SELECT GET_IDENTITY( 'Customers', 10 );