DB2 - Sequenzen

Dieses Kapitel führt Sie in das Konzept der Sequenz ein, erstellt eine Sequenz, zeigt die Sequenz an und löscht sie.

Einführung

Eine Sequenz ist eine Softwarefunktion, die Ganzzahlen in aufsteigender oder absteigender Reihenfolge innerhalb eines bestimmten Bereichs generiert, um einen Primärschlüssel zu generieren und andere Schlüssel in der Tabelle zu koordinieren. Sie verwenden die Sequenz, um Ganzzahlen zu verwenden, z. B. für employee_id oder transaction_id. Eine Sequenz kann die Datentypen SMALLINT, BIGINT, INTEGER und DECIMAL unterstützen. Eine Sequenz kann von mehreren Anwendungen gemeinsam genutzt werden. Eine Sequenz wird unabhängig von Transaktionen inkrementiert oder dekrementiert.

Eine Sequenz wird mit der Anweisung CREATE SEQUENCE erstellt.

Arten von Sequenzen

Es gibt zwei Arten von Sequenzen:

  • NEXTVAL: Es wird ein inkrementierter Wert für eine Sequenznummer zurückgegeben.

  • PREVIOUS VALUE: Gibt den kürzlich generierten Wert zurück.

Parameter von Sequenzen

Die folgenden Parameter werden für Sequenzen verwendet:

Data type: Dies ist der Datentyp des zurückgegebenen inkrementierten Werts. (SMALLINT, BIGINT, INTEGER, NUMBER, DOUBLE)

START WITH: Der Referenzwert, mit dem die Sequenz beginnt.

MINVALUE: Ein Mindestwert für eine Sequenz, mit der begonnen werden soll.

MAXVALUE: Ein Maximalwert für eine Sequenz.

INCREMENT BY: Schrittwert, um den eine Sequenz erhöht wird.

Sequence cycling: Die CYCLE-Klausel bewirkt, dass die Sequenz wiederholt generiert wird. Die Sequenzgenerierung wird durchgeführt, indem auf den zurückgegebenen Wert verwiesen wird, der durch vorherige Sequenzgenerierung in der Datenbank gespeichert wird.

Erstellen einer Sequenz

Sie können eine Sequenz mit der folgenden Syntax erstellen:

Syntax:

db2 create sequence <seq_name>

Example: [Um eine neue Sequenz mit dem Namen 'sales1_seq' zu erstellen und die Werte von 1 zu erhöhen]

db2 create sequence sales1_seq as int start 
with 1 increment by 1

Anzeigen der Sequenzen

Sie können eine Sequenz mit der folgenden Syntax anzeigen:

Syntax:

db2 value <previous/next> value for <seq_name>

Example: [Um die Liste der zuvor aktualisierten Werte in der Reihenfolge 'sales1_seq' anzuzeigen]

db2 values previous value for sales1_seq

Output:

1 
----------- 
  4 
  1 record(s) selected.

Sequenz löschen

Um die Sequenz zu entfernen, müssen Sie die „DROP SEQUENCE“ verwenden " Befehl. So geht's:

Syntax:

db2 drop sequence <seq_name>>

Example: [Sequenz 'sales1_seq' aus Datenbank löschen]

db2 drop sequence sales1_seq

Output:

DB20000I The SQL command completed successfully.