順序 とは、一意な整数を生成することができる順序番号ジェネレータ(生成器)です。順序はスキーマ・オブジェクトです。

順序番号を生成する (NEXTVAL擬似列)

順序から新たな順序値を生成するには、NEXTVAL擬似列を参照します。NEXTVAL擬似列を参照する構文は次のとおりです。

順序名 .NEXTVAL

SELECT文で新たに順序値を生成するには、FROM句にDUAL表を指定します。SELECT文で新たに順序値を生成する例を次に示します。

SQL> SELECT customerid_seq.NEXTVAL FROM DUAL;

   NEXTVAL
----------
         1

SQL> SELECT customerid_seq.NEXTVAL FROM DUAL;

   NEXTVAL
----------
         2

SQL>

INSERT文で順序を使用する例を次に示します。

SQL> insert into customer values (customerid_seq.nextval, '矢島舞美');

UPDATE文で順序を使用する例を次に示します。

SQL> update customer set customer_id = customerid_seq.nextval where customer_name = '矢島舞美';

なお、トランザクションをロールバックしても、シーケンス番号は元に戻らない。

最新の順序番号を参照する (CURRVAL擬似列)

最後に生成した順序値を参照するには、CURRVAL擬似列を参照します。CURRVAL擬似列を参照する構文は次のとおりです。

順序名 .CURRVAL

SELECT文で最後に生成した順序値を参照するには、FROM句にDUAL表を指定します。SELECT文で最後に生成した値を参照する例を次に示します。

SQL> SELECT customerid_seq.CURRVAL FROM DUAL;

   CURRVAL
----------
         2

SQL>
スポンサーリンク