順序の作成および管理
順序は一意の連続した値を生成できるスキーマ・オブジェクトであり、一意の主キーが必要な場合に非常に役立ちます。順序は、疑似列CURRVALおよびNEXTVALを通じて使用します。これらの疑似値は、それぞれ順序の現在と次の値を返します。
順序の作成後、NEXTVALを使用してその最初の値を取得し、順序を初期化する必要があります。順序を初期化した後のみ、CURRVALは現在の値を戻します。
HRスキーマには、DEPARTMENTS_SEQUENCE、EMPLOYEES_SEQUENCEおよびLOCATIONS_SEQUENCEの3つの順序が含まれます。
ヒント:表の主キーを移入するために順序を使用する場合は、この目的に合った名前を順序に付けることをお薦めします。(ここでは、TABLE_NAME_SEQUENCEというネーミング規則を使用します。)
関連情報:
-
順序の概要は『Oracle Database概要』を参照してください。
-
CURRVALおよびNEXTVAL疑似列の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
-
順序の管理については、『Oracle Database管理者ガイド』を参照してください。
チュートリアル: 順序の作成
このチュートリアルでは、データベース順序の作成ツールを使用して順序を作成し、それを使用して、EVALUATIONS表に主キーを生成する方法を示します。
EVALUATIONS表は、例4-1で作成しました。
順序を作成するには、SQL Developerツールの「順序の作成」またはDDL文の「CREATE SEQUENCE」を使用します。対応するDDL文は次のとおりです。
CREATE SEQUENCE evaluations_sequence
INCREMENT BY 1
START WITH 1 ORDER;
データベース順序の作成ツールを使用してEVALUATIONS_SEQUENCEを作成するステップ:
-
「接続」フレームのhr_connを開きます。
-
スキーマ・オブジェクト・タイプのリストから、「順序」を右クリックします
-
選択肢のリストで、「新規順序」をクリックします。
-
「順序の作成」ウィンドウで、「名前」フィールドに
EVALUATIONS_SEQUENCEと入力し、デフォルト値SEQUENCE1を上書きします。 -
「プロパティ」ペインが表示されない場合は、「プロパティ」タブをクリックします。
-
「プロパティ」ペインで、次の手順を実行します。
-
「増分」フィールドに
1と入力します。 -
「開始文字」フィールドに
1と入力します。 -
残りのフィールドでは、デフォルト値を受け入れます。
-
「OK」をクリックします。
順序EVALUATIONS_SEQUENCEが作成されます。「接続」フレームの「順序」の下にその名前が表示されます。
-
関連情報:
-
Oracle SQL Developer User’s Guide for more information about using SQL Developer to create a sequence
-
CREATE SEQUENCE文の詳細は、Oracle Database SQL言語リファレンスを参照
-
EVALUATIONS_SEQUENCEによって作成された主キーをEVALUATIONS表に挿入するトリガーを作成する方法を学習するには、「チュートリアル: 行が挿入される前に主キーを生成するトリガーの作成」を参照してください
順序の削除
順序を削除するには、SQL Developerの「接続」フレームと削除ツールまたはDDL文のDROP SEQUENCEを使用します。
この文は、順序EVALUATIONS_SEQUENCEを削除します。
DROP SEQUENCE EVALUATIONS_SEQUENCE;
注意: 例5-3で必要なため、順序EVALUATIONS_SEQUENCEを削除しないでください。順序の削除の練習をする際は、簡単な順序を作成し、それを削除してください。
「削除」ツールを使用して順序を削除するには:
-
「接続」フレームのhr_connを開きます。
-
スキーマ・オブジェクト・タイプのリスト内で、「順序」を展開します
-
順序のリストで、削除する順序の名前を右クリックします。
-
選択肢のリストで、「削除」をクリックします。
-
削除ウィンドウで、「適用」をクリックします。
-
「確認」ウィンドウで、「OK」をクリックします。
関連項目: DROP SEQUENCE文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。