SQL SEQUENCE und NEXTVAL | |
Oracle verwendet das Konzept der SEQUENCE (Sequenz), um numerische Primärschlüsselwerte zu erstellen, wenn wir Datensätze in eine Tabelle einfügen. Während die Bevölkerung numerischer Primärschlüssel für MySQL und SQL Server an individuelle Tabellen gebunden ist, wird in Oracle die SEQUENCE-Konstruktion separat erstellt und ist nicht an eine bestimmte Tabelle gebunden. SyntaxDie Syntax für die Erstellung einer Sequenz in Oracle lautet:CREATE SEQUENCE SEQUENCE_NAME
[START WITH {Initial_Value}] [INCREMENT BY {interval}]; {Initial_Value} ist der Startwert der Sequenz, und {interval} ist das Intervall zwischen aufeinanderfolgenden Sequenznummern. Sowohl [START WITH] als auch [INCREMENT BY] sind optionale Felder. Wenn sie nicht angegeben werden, sind der Standardwert für {Initial_Value} und {interval} beide 1. BeispielAngenommen, wir haben eine Tabelle mit folgender Struktur: Tabelle USER_TABLE
und wir möchten die folgende Sequenz verwenden, um die Benutzer-ID zu generieren: CREATE SEQUENCE SEQ_USER START WITH 5 INCREMENT BY 5;
Wir geben an, dass wir die Sequenz und die NEXTVAL-Funktion in den INSERT INTO-Anweisungen in der folgenden Reihenfolge verwenden möchten: INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Washington', 'George');
INSERT INTO USER_TABLE VALUES (SEQ_USER.NEXTVAL, 'Jefferson', 'Thomas'); Jetzt hat die Tabelle die folgenden beiden Zeilen: Tabelle USER_TABLE
Es ist erwähnenswert, dass eine Sequenz unabhängig von einer Tabelle ist. Mit anderen Worten, eine Sequenz kann verwendet werden, um Primärschlüsselwerte für mehrere Tabellen zu generieren, und die Sequenz setzt sich fort, auch wenn sie auf eine andere Tabelle angewendet wird. Angenommen, wir haben zum Beispiel eine zweite Tabelle namens NEW_USERS, die die gleiche Struktur wie die Tabelle USER_TABLE hat, und wir geben den folgenden SQL-Befehl aus, nachdem wir die beiden oben genannten SQL-Befehle ausgeführt haben: INSERT INTO NEW_USER VALUES (SEQ_USER.NEXTVAL, 'Adams', 'John');
Die Tabelle NEW_USER wird die folgende Zeile haben: Tabelle NEW_USER
Die Benutzer-ID ist 15, weil das der nächste Wert nach 10 ist.
Copyright © 2024 1keydata.com Alle Rechte vorbehalten |