サーチ…


構文

  • CREATE SEQUENCE SCHEMA.SEQUENCE {INCREMENT BY INTEGER | INTEGERを使用して開始| MAXVALUE INTEGER | NOMAXVALUE INTEGER | MINVALUE INTEGER | NOMINVALUE INTEGER | CYCLE INTEGER | NOCYCLE INTEGER |キャッシュ| NOCACHE |オーダー| NOODER}

パラメーター

パラメータ詳細
スキーマスキーマ名
インクリメントする数字の間隔
皮切りに最初の番号が必要です
マックスバリューシーケンスの最大値
ノーマックスバリュー最大値はデフォルトです
最小値シーケンスの最小値
名目金額最小値がデフォルトになります
サイクルこの値に達した後に開始にリセットする
ノーサイクルデフォルト
キャッシュ事前割り当て制限
ノーキャッシュデフォルト
注文数字の順序を保証する
いいえデフォルト

シーケンスの作成:例

目的

CREATE SEQUENCEステートメントを使用して、複数のユーザーが一意の整数を生成するデータベース・オブジェクトであるシーケンスを作成します。シーケンスを使用して主キー値を自動的に生成することができます。

シーケンス番号が生成されると、コミットまたはロールバックされたトランザクションとは独立して、シーケンスがインクリメントされます。 2人のユーザが同じシーケンスを同時にインクリメントすると、シーケンス番号が他のユーザによって生成されているため、各ユーザが取得するシーケンス番号にギャップが生じることがあります。 1人のユーザは、他のユーザによって生成されたシーケンス番号を決して得ることができない。あるユーザーによってシーケンス値が生成された後、そのユーザーは、シーケンスが別のユーザーによって増分されているかどうかにかかわらず、その値に引き続きアクセスできます。

シーケンス番号はテーブルとは無関係に生成されるため、1つまたは複数のテーブルに対して同じシーケンスを使用できます。個々のシーケンス番号は、最終的にロールバックされるトランザクションで生成されて使用されるため、スキップされているように見える可能性があります。さらに、単一のユーザは、他のユーザが同じシーケンスから描画していることを認識しないことがある。

シーケンスが作成された後、シーケンスの現在の値を戻すCURRVAL疑似列またはシーケンスをインクリメントして新しい値を戻すNEXTVAL疑似列を使用して、SQLステートメント内のその値にアクセスできます。

前提条件

独自のスキーマにシーケンスを作成するには、CREATE SEQUENCEシステム権限が必要です。

別のユーザーのスキーマにシーケンスを作成するには、CREATE ANY SEQUENCEシステム権限が必要です。

順序の作成:例次の文は、サンプル・スキーマoeに順序customers_seqを作成します。このシーケンスは、行がcustomers表に追加されたときに顧客ID番号を提供するために使用できます。

CREATE SEQUENCE customers_seq
START WITH     1000
INCREMENT BY   1
NOCACHE
NOCYCLE;

customers_seq.nextvalへの最初の参照は1000を返します。2番目の参照は1001を返します。その後の各参照は、前の参照よりも大きな値1を返します。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow