順序は以下のように作成する。
CREATE SEQUENCE seq_no START WITH 100 MAXVALUE 200 CYCLE;
直近に採番された順序を取得するには、順序名.CURRVALで取得するが、一度も順序を採番していない場合は、エラーが発生する。
順序の変更はALTER SEQUENCEコマンドを使用しますが、以下の点に注意する必要がある。
- 初期値(START WITH)は変更できない。
- 採番済みの順序より小さい最大値(MAXVAUE)に変更できない。
- 最小値(MINVALUE)はいつでも変更可能。
- 順序の削除は、所有者もしくはDROP ANY SEQUENCE権限を持つユーザのみである。
順序で使用する擬似列NEXTVALとCURRVALには使用できない個所がある。
- ビューのSELECT句
- DISTINCTを含むSELECT文
- GROUP BYを含むSELECT文
- HAVINGを含むSELECT文
- ORDER BYを含むSELECT文
- 副問合せ
- CREATE TABLEのDEFAULT
必ず試験に出るので、覚えよう。