Oracleで自動採番シーケンスを作成する方法
Oracleでは、シーケンス(Sequence)を使用して、自動生成のシーケンスを作成できます。シーケンスは、ユニークで増加する数字を生成するために使用される、独立したオブジェクトです。
シークエンスからオートインクリメントシークエンスを作成する手順は次のとおりです。
- シーケンスを作成する:CREATE SEQUENCE文を使用してシーケンスを作成します。例えば、「my_sequence」という名前で、開始値が1、増分値が1のシーケンスを作成するには:
CREATE SEQUENCE my_sequence
START WITH 1
INCREMENT BY 1;
- シーケンスの使用: データの挿入時には、シーケンスのNEXTVAL関数を使用して次のシーケンス値を取得し、テーブルに挿入します。たとえば、シーケンスの次の値をテーブル「my_table」の「id」列に挿入します:
INSERT INTO my_table (id, name)
VALUES (my_sequence.NEXTVAL, 'John');
- 現在のシーケンスの値を確認するには、シーケンスのCURRVAL関数が使用できます。たとえば、”my_sequence”シーケンスの現在の値を確認するには、次のようにします。
SELECT my_sequence.CURRVAL
FROM dual;
なおシークエンスを使用するときは、シークエンスの値はセッション単位で独立に保持され、自動的にロールバックされません。また、シークエンスはインクリメントのみ可能でデクリメントはできません。シークエンスの初期値を再設定する必要がある場合はALTER SEQUENCE文を使用します。
お役に立てれば幸いです!