Oracle では、シーケンスは一連の一意の数値を生成するために使用されるデータベース オブジェクトです。シーケンスは、テーブル内の行のシーケンス番号を自動的に生成できるシーケンス番号ジェネレーターです。その主な目的は、プライマリ シーケンスを生成することです。キー、値、およびシーケンスを定義するユーザーには CREATE SEQUENCE 権限が必要です。
このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。
Sequence: Sequence は、一連の一意の数値を生成するために Oracle が提供するデータベース オブジェクトです。 Oracle には自動インクリメント列を設定する方法がないため、主にシーケンスを使用して主キーの自動インクリメント機能を Oracle データベースに実装します。
Oracle データベースでは、sequence は実際にはシーケンス番号ジェネレーターであり、テーブル内の行のシーケンス番号を自動的に生成できます。その主な目的は、テーブルの主キー値を生成することです。 SQL Server および MySQL の自動インクリメント フィールドに相当します。
SQL Server では、主キーを定義するときにidentity キーワードを使用できますが、MySQL では、主キーを定義するときに increment キーワードを使用できます。 Oracle データベースで自動インクリメント フィールドを使用する場合は、最初にシーケンス オブジェクトを定義し、次に [シーケンス オブジェクト名.nextval] を使用して、データの挿入時に主キーに自動インクリメント データを挿入する必要があります。
シーケンスを定義するには、シーケンスを定義するユーザーに CREATE SEQUENCE 権限が必要です。 Oracle データベースでは、シーケンスを定義するための構文は次のとおりです:
CREATE SEQUENCE 序列名 [START WITH n] [INCREMENT BY n] [MAXVALUE n|NOMAXVALUE] [MINVALUE n|NOMINVALUE] [CACHE n|NOCACHE] [CYCLE|NOCYCLE]
パラメータの説明:
(1) INCREMENT BY: シーケンスのステップ サイズを定義します。n が正の場合は、値の場合、シーケンスが増分シーケンスであることを意味します。n が負の値の場合、シーケンスは減少シーケンスであることを意味します。省略した場合、デフォルト値は 1 です。
(2) START WITH: シーケンスの開始値を定義します。省略した場合、デフォルト値は 1 です。
(3) MAXVALUE: シーケンスジェネレーターが生成できる最大値を定義します。オプション NOMAXVALUE はデフォルトのオプションであり、最大値の定義がないことを意味します。この時点で、増加シーケンスの場合、システムが生成できる最大値は 10 の 27 乗、減少シーケンスの場合、最大値です。は -1 です。
(4) MINVALUE: シーケンスジェネレーターが生成できる最小値を定義します。オプション NOMAXVALUE はデフォルトのオプションであり、最小値の定義がないことを意味します。この時点で、降順シーケンスの場合、システムが生成できる最小値は -10 の 26 乗であり、増加シーケンスの場合、最小値は値は 1 です。
(5) CYCLE|NOCYCLE: 順序数生成子の値が制限値に達したときにループするかどうかを示します。 CYCLEはサイクル、NOCYCLEはノーサイクルの略です。
(6) CACHE: シーケンスを保存するメモリ ブロックのサイズを定義します。デフォルトは 20 です。 NOCACHE は、シーケンスのメモリ バッファリングがないことを意味します。
例は次のとおりです:
知識を広げる:
シーケンスを変更する
形式:
ALTER SEQUENCE name [INCREMENT BY n] [MINVALUE n | NO MINVALUE] [MAXVALUE n | NO MAXVALUE ] [MINVALUE n | NO MINVALUE ] [CACHE n ] [CYCLE | NO CYCLE]
例は次のとおりです:
# 推奨チュートリアル: 「Oracle ビデオ チュートリアル」 "
以上がオラクルシーケンスとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。