Oracle ALTER SEQUENCE anhand praktischer Beispiele

Oracle Alter Sequence Anhand Praktischer Beispiele



In Oracle ist eine Sequenz ein Datenbankobjekt, das eine eindeutige Reihe von Ganzzahlen generiert, die als Primärschlüssel oder für jeden anderen Zweck verwendet werden können, bei dem eine eindeutige Zahl erforderlich ist. ALTER SEQUENCE ist ein leistungsstarkes Tool in Oracle, mit dem Sie die Attribute einer Sequenz in der Datenbank ändern können. Der Befehl ALTER SEQUENCE mag auf den ersten Blick entmutigend erscheinen, aber praktische Beispiele können Ihnen helfen, sein volles Potenzial zu verstehen und auszuschöpfen.

In diesem Leitfaden werden die folgenden Beispiele behandelt:

Setzen Sie den Sequenzwert zurück

Um den Sequenzwert zurückzusetzen oder den Sequenzwert von seinem Startwert aus neu zu starten, klicken Sie auf „ REIHENFOLGE ÄNDERN ”-Befehl mit dem „ NEU STARTEN ”-Klausel kann verwendet werden. Das Beispiel ist unten aufgeführt:







ALTER SEQUENCE LINUXHINT_SEQ RESTART;

Im obigen Befehl: „ LINUXHINT_SEQ „steht für den Sequenznamen.



Ausgang



Die Ausgabe zeigt, dass die Sequenz zurückgesetzt wurde.





Ändern Sie die Mindestwerte der Sequenz

Wenn eine Sequenz in Oracle erstellt wird, ist ihr Mindestwert standardmäßig auf 1 gesetzt. REIHENFOLGE ÄNDERN ”-Befehl mit dem „ MINWERT Die Klausel „“ kann verwendet werden, um den Mindestwert der Sequenz zu ändern. Das Beispiel ist unten aufgeführt:

ALTER SEQUENCE LINUXHINT_SEQ MINVALUE -1;

In diesem Beispiel beträgt der neue Mindestwert -1 .



Ausgang

Die Ausgabe zeigte, dass der Mindestwert geändert wurde.

Ändern Sie die Maximalwerte der Sequenz

Standardmäßig beträgt der Maximalwert einer Oracle-Sequenz „10^27 – 1“, was der größtmögliche Wert für eine 38-stellige Dezimalzahl ist. Um den maximalen Sequenzwert zu ändern, muss „ REIHENFOLGE ÄNDERN ”-Befehl mit dem „ MAXWERT ”-Klausel kann verwendet werden. Das Beispiel finden Sie unten:

ALTER SEQUENCE LINUXHINT_SEQ MAXVALUE 1000;

Im obigen Beispiel beträgt der neue Maximalwert 1000 .

Ausgang

Im Screenshot ist zu erkennen, dass der Maximalwert geändert wurde.

Notiz : Im obigen Beispiel stoppt die Sequenz die Generierung von Werten, nachdem sie 1000 erreicht hat, und alle Versuche, einen Wert über diesen Punkt hinaus zu generieren, führen zu einem Fehler.

Ändern Sie die Caching-Größe der Sequenz

Die Cache-Größe bestimmt die Anzahl der Sequenznummern, die für einen schnelleren Zugriff vorab zugewiesen und im Speicher gespeichert werden. Um die Cache-Größe der Sequenz zu ändern, verwenden Sie „ ZWISCHENSPEICHER ”-Klausel mit dem „ REIHENFOLGE ÄNDERN ' Befehl. Nachfolgend finden Sie ein Beispiel:

ALTER SEQUENCE LINUXHINT_SEQ CACHE 50;

Im obigen Beispiel ist die Cache-Größe der Sequenz auf eingestellt fünfzig . Dies bedeutet, dass die Sequenznummer 50 für einen schnelleren Zugriff jeweils vorab zugewiesen wird.

Ausgang

Die Ausgabe zeigt, dass die Cache-Größe geändert wurde.

Legen Sie die Größe und Reihenfolge der Cache-Sequenz fest

Um die Größe des Sequenzcaches festzulegen und die Sequenznummern der Reihe nach zu generieren, verwenden Sie „ BEFEHL ' Und ' ZWISCHENSPEICHER ”-Klauseln mit dem „ REIHENFOLGE ÄNDERN ' Befehl. Hier ist ein Beispiel:

ALTER SEQUENCE LINUXHINT_SEQ CACHE 100 ORDER;

In diesem Beispiel lautet der neue Cache-Größenwert 100 .

Ausgang

Die Ausgabe zeigte an, dass die Änderungen an der Sequenz vorgenommen wurden.

Legen Sie die Reihenfolge fest, um absteigende Werte zu generieren

Der Abstand zwischen den Sequenznummern wird durch die Inkrementnummer bestimmt. Der Inkrementwert ist standardmäßig auf 1 gesetzt, was bedeutet, dass bei jedem Aufruf der Sequenz die nächste Zahl in der Reihe zurückgegeben wird. Wenn das Inkrement auf -1 eingestellt ist, generiert die Sequenz Ganzzahlen in absteigender Reihenfolge.

Um die Reihenfolge so festzulegen, dass absteigende Werte generiert werden, verwenden Sie die Option „ ERHÖHUNG UM ' mit dem ' REIHENFOLGE ÄNDERN ”-Befehl und setzen Sie den Wert auf -1. Das Beispiel ist unten aufgeführt:

ÄNDERN SIE SEQUENCE LINUXHINT_SEQ INCREMENT BY -1;

In diesem Beispiel ist der Wert -1 , was bedeutet, dass bei jedem Aufruf der Sequenz die vorherige Nummer in der Sequenz zurückgegeben wird.

Ausgang

Die Ausgabe zeigt, dass die Sequenz so eingestellt wurde, dass absteigende Werte generiert werden.

Ändern Sie den Inkrementwert der Sequenz

Um den Inkrementwert der Sequenz zu ändern, verwenden Sie die Schaltfläche „ ERHÖHUNG UM ' mit dem ' REIHENFOLGE ÄNDERN ”-Befehl und stellen Sie den Wert entsprechend ein. Das Beispiel finden Sie unten:

ALTER SEQUENCE LINUXHINT_SEQ INCREMENT BY 2;

In diesem Beispiel ist der Wert 2 , was bedeutet, dass bei jedem Aufruf der Sequenz die nächste Zahl in der Sequenz um 2 erhöht wird.

Ausgang

Die Ausgabe zeigte an, dass die Reihenfolge entsprechend geändert wurde.

Ändern Sie die Reihenfolge, um die Option „Zyklus“ zu aktivieren

Wenn die Zyklusoption für eine Sequenz aktiviert ist, läuft die Sequenz um und beginnt wieder von vorne (MINVALUE), sobald sie den Maximalwert (MAXVALUE) erreicht. Um diese Option zu aktivieren, verwenden Sie das „ ZYKLUS ” Klausel mit dem “ FOLGE ÄNDERN ' Befehl. Das Beispiel ist unten angegeben:

ALTER SEQUENCE LINUXHINT_SEQ ZYKLUS;

Ausgang

Der Ausgang zeigt an, dass die Zyklusoption aktiviert wurde.

Ändern Sie die Sequenz zum Deaktivieren des Zyklus

Wenn die Zyklusoption für eine Sequenz deaktiviert ist, stoppt die Sequenz die Generierung von Werten, sobald sie je nach Generierungsreihenfolge ihren Maximalwert (MAXVALUE) oder Minimalwert (MINVALUE) erreicht. Um diese Option zu deaktivieren, verwenden Sie die „NOCYCLE“-Klausel mit dem „ALTER SEQUENCE“-Befehl. Das Beispiel ist unten angegeben:

ALTER SEQUENCE LINUXHINT_SEQ NOCYCLE;

Ausgang

Die Ausgabe zeigte, dass die Zyklusoption deaktiviert wurde.

Ändern Sie die Reihenfolge, um mehrere Optionen zu ändern

Geben Sie den angegebenen Befehl ein, um die Sequenz so einzustellen, dass sie ein negatives Inkrement von -1, einen maximalen Wert von 10 und eine aktivierte Zyklusoption aufweist:

ALTER SEQUENCE LINUXHINT_SEQ INCREMENT BY -1 MAXVALUE 10 CYCLE;

Ausgang

Die Ausgabe zeigte, dass die Änderungen erfolgreich an der Sequenz vorgenommen wurden.

Abschluss

Bei Oracle ist das „ FOLGE ÄNDERN ”-Befehl können Sie die Attribute einer Sequenz ändern, indem Sie den Sequenzwert zurücksetzen, die Minimal- und Maximalwerte ändern, den Wert erhöhen, die Cache-Größe, die Reihenfolge und die Zyklusoption aktivieren oder deaktivieren. Diese Änderungen sind in vielen Situationen hilfreich, z. B. wenn Sie den Startwert einer Sequenz ändern oder die Caching-Größe für eine bessere Leistung anpassen müssen. Dieser Beitrag hat verschiedene Anwendungsfälle des ALTER SEQUENCE-Befehls anhand praktischer Beispiele erklärt.