機能
順序はRDBシステム全体で一意の値を生成します。
記述形式
権限
順序を使用したSQL文が実行できるのは、順序の定義者とSELECT権を付与された人のみです。
一般規則
CURRVALおよびNEXTVALはアプリケーションおよびストアドプロシジャの以下のSQL文の箇所に指定できます。
単一行SELECT文の選択リスト
問合せ指定の選択リスト:カーソル指定の問合せ式のみ
UPDATE文のSET句
INSERT文に指定した問合せ指定の選択リスト
INSERT文のVALUES句
ストアドプロシジャのSET文
被トリガSQL文
SQL文中に同一の順序のNEXTVALを複数個指定している場合は、すべて同一の順序番号が返却されます。また、SQL文中に同一の順序のNEXTVALとCURRVALの両方を指定している場合は、それらが文中で出現する順番にかかわらずNEXTVALとCURRVALの両方に対して、NEXTVALとして採番された同じ順序番号が返却されます。
SELECT文に順序を指定すると、順序番号は検索結果の行に対して生成されます。
UPDATE文に順序を指定すると、順序番号は更新行に対して生成されます。
INSERT文に順序を指定すると、順序番号は挿入先の挿入行に対して生成されます。
注意
順序定義で順序保証指定“ORDER”を指定せずに割当順序数指定“CACHE”を指定している場合、ロードシェア機能利用時にシステムダウンが発生すると、順序番号が昇順または降順に生成されないことがあります。なお、順序番号の一意性は保証されます。
使用例
製品の納入に伴い、納品管理表および在庫表に製品データを格納します。その時、おのおの表の管理番号には順序を使用して生成した一意の番号を設定します。
NEXTVALを使用して新しい管理番号を生成します。
INSERT INTO STOCKS.納品管理表 (管理番号,製品番号,製品名,数量) VALUES(STOCKS.順序1.NEXTVAL,110,'テレビ',86)
CURRVALを使用して納品管理表に設定した管理番号と同じ番号を格納します。
INSERT INTO STOCKS.在庫表 (管理番号,製品番号,製品名,在庫数量,倉庫番号) VALUES(STOCKS.順序1.CURRVAL,110,'テレビ',86,2)