実践例による Oracle ALTER SEQUENCE

Shi Jian Liniyoru Oracle Alter Sequence



Oracle では、シーケンスは、主キーとして、または一意の番号が必要なその他の目的に使用できる一意の一連の整数を生成するデータベース オブジェクトです。 ALTER SEQUENCE は、データベース内のシーケンスの属性を変更できる Oracle の強力なツールです。 ALTER SEQUENCE コマンドは最初は難しそうに思えるかもしれませんが、実際の例はその可能性を理解し、最大限に活用するのに役立ちます。

このガイドでは、次の例について説明します。

シーケンス値をリセットする

シーケンス値をリセットするか、シーケンス値を開始値から再開するには、「 シーケンスの変更 ”コマンドと” 再起動 」句を使用することができます。例を以下に示します。







ALTER SEQUENCE LINUXHINT_SEQ RESTART;

上記のコマンドでは、「 LINUXHINT_SEQ ”は配列名を表します。



出力



出力は、シーケンスがリセットされたことを示します。





シーケンスの最小値を変更する

Oracle でシーケンスが作成されると、デフォルトでその最小値は 1 に設定されます。 シーケンスの変更 ”コマンドと” 最小値 ” 句を使用して、シーケンスの最小値を変更できます。例を以下に示します。

ALTER SEQUENCE LINUXHINT_SEQ MINVALUE -1;

この例では、新しい最小値は次のとおりです。 -1



出力

出力には、最小値が変更されたことが示されました。

シーケンスの最大値を変更する

デフォルトでは、Oracle シーケンスの最大値は「10^27 – 1」で、これは 38 桁の 10 進数として可能な最大値です。最大シーケンス値を変更するには、「 シーケンスの変更 ”コマンドと” マックスバリュー 」句を使用することができます。例を以下に示します。

ALTER SEQUENCE LINUXHINT_SEQ MAXVALUE 1000;

上の例では、新しい最大値は次のようになります。 1000

出力

スクリーンショットでは、最大値が変更されていることがわかります。

ノート : 上記の例では、シーケンスは 1000 に達すると値の生成を停止し、それを超える値を生成しようとするとエラーが発生します。

シーケンスのキャッシュ サイズを変更する

キャッシュ サイズによって、アクセスを高速化するためにメモリに事前に割り当てられて保存されるシーケンス番号の数が決まります。シーケンスのキャッシュ サイズを変更するには、「 キャッシュ ”句と” シーケンスの変更 ' 指図。以下に例を示します。

ALTER SEQUENCE LINUXHINT_SEQ キャッシュ 50;

上記の例では、シーケンスのキャッシュ サイズは次のように設定されています。 50 。これは、アクセスを高速化するために、シーケンス番号 50 が一度に事前に割り当てられることを意味します。

出力

出力には、キャッシュ サイズが変更されたことが示されています。

キャッシュ シーケンスのサイズと順序を設定する

シーケンス キャッシュ サイズを設定し、シーケンス番号を順番に生成するには、「 注文 ' と ' キャッシュ ” を含む節 シーケンスの変更 ' 指図。以下に例を示します。

ALTER SEQUENCE LINUXHINT_SEQ CACHE 100 ORDER;

この例では、新しいキャッシュ サイズの値は次のようになります。 100

出力

出力には、シーケンスに変更が加えられたことが表示されました。

降順の値を生成するようにシーケンスを設定する

シーケンス番号間の間隔は、増分番号によって決まります。増分値はデフォルトで 1 に設定されます。これは、シーケンスが呼び出されるたびに系列の次の数値が返されることを意味します。増分が -1 に設定されている場合、シーケンスは整数を降順に生成します。

降順の値を生成するようにシーケンスを設定するには、「 インクリメントバイ ' とともに ' シーケンスの変更 」コマンドを実行し、値を-1に設定します。例を以下に示します。

ALTER SEQUENCE LINUXHINT_SEQ INCREMENT BY -1;

この例では、値は次のとおりです。 -1 これは、シーケンスが呼び出されるたびに、シーケンス内の前の番号が返されることを意味します。

出力

出力は、シーケンスが降順の値を生成するように設定されていることを示します。

シーケンスの増分値を変更する

シーケンスの増分値を変更するには、「 インクリメントバイ ' とともに ' シーケンスの変更 」コマンドを実行し、それに応じて値を設定します。例を以下に示します。

ALTER SEQUENCE LINUXHINT_SEQ INCREMENT BY 2;

この例では、値は次のとおりです。 2 これは、シーケンスが呼び出されるたびに、シーケンス内の次の数値が 2 ずつ増加することを意味します。

出力

出力には、シーケンスがそれに応じて変更されたことが表示されました。

シーケンスを変更してサイクル オプションを有効にする

シーケンスに対してサイクル オプションが有効になっている場合、シーケンスは最大値 (MAXVALUE) に達するとラップアラウンドして最初 (MINVALUE) から再度開始されます。このオプションを有効にするには、「 サイクル ”句と” シーケンスの変更 ' 指図。例を以下に示します。

ALTER SEQUENCE LINUXHINT_SEQ サイクル;

出力

出力には、サイクル オプションが有効になっていることが表示されます。

シーケンスを変更してサイクルを無効にする

シーケンスのサイクル オプションが無効になっている場合、シーケンスは、生成順序に応じて最大値 (MAXVALUE) または最小値 (MINVALUE) に達すると値の生成を停止します。このオプションを無効にするには、「ALTER SEQUENCE」コマンドで「NOCYCLE」句を使用します。例を以下に示します。

ALTER SEQUENCE LINUXHINT_SEQ NOCYCLE;

出力

出力には、サイクル オプションが無効になっていることが示されています。

順序を変更して複数のオプションを変更する

指定されたコマンドを入力して、シーケンスの負の増分が -1、最大値が 10、サイクル オプションが有効になるように設定します。

ALTER SEQUENCE LINUXHINT_SEQ INCREMENT BY -1 MAXVALUE 10 CYCLE;

出力

出力には、シーケンスに変更が正常に加えられたことが示されています。

結論

オラクルでは、「 シーケンスの変更 」コマンドを使用すると、シーケンス値のリセット、最小値と最大値、増分値、キャッシュ サイズ、順序付け、およびサイクル オプションの有効化または無効化によってシーケンスの属性を変更できます。これらの変更は、シーケンスの開始値を変更する必要がある場合や、パフォーマンスを向上させるためにキャッシュ サイズを調整する必要がある場合など、さまざまな状況で役立ちます。この記事では、ALTER SEQUENCE コマンドのさまざまな使用例を実際の例を使用して説明しました。