Wiki内検索
最近更新したページ
最新コメント
PostgreSQL導入メモ by awesome things!
システム開発_memo by awesome things!
Oracle_memo by stunning seo guys
Oracle データファイル by awesome things!
Oracle グループ関数 by awesome things!
Oracle SQL Plus by stunning seo guys
Oracle ロックとラッチ by tips about seo
Oracle DBA用語集 by watch for this
Oracle SGA by check this out
Menu
ここは自由に編集できるエリアです。
タグ

Oracle シーケンス

Oracle シーケンスオブジェクト


シーケンスの作成


  • CREATE SEQUENCE コマンドで作成可能

  • シーケンスには以下の機能がある
    • 初期値や増分を任意に指定可能
    • 増分をマイナスに指定する事で降順の採番が可能
    • CYCLEを指定して,循環して採番することが可能
    • CACHEを利用してメモリ上で管理し,パフォーマンスの向上を図る
    • データベースを起動/停止しても値は元に戻らない

CREATE SEQUENCE 順序名
[START WITH 初期値]
[INCREMENT BY 増分]
[MAXVALUE 最大値 | NOMAXVALUE ]
[MINVALUE 最小値| NOMINVALUE ]
[CYCLE | NOCYCLE]
[CACHE メモリー上に取る値 | NOCACHE ]

  • ALTER SEQUENCE コマンドにてパラメータの変更が可能.ただし,START WITH は変更できない.また,現在の採番済みの順序番号より小さいMAXVALUEに変更することはできない.

シーケンスの削除


  • DROP SEQUENCE シーケンス名

シーケンスの使用方法


  • 新しい値を取得するとき 
SELECT シーケンス名.NEXTVAL FROM DUAL
  • 直近に採番された値を参照する場合
SELECT シーケンス名.CURRVAL FROM DUAL

  • CURRVAL は現ユーザが採番した最後の番号を返す.現ユーザが一度も採番していない場合にはエラーになる.

NEXTVAL, CURRVALの制限事項


  • 利用できる場所
    • SELECT句,INSERT文中の副問い合わせ,VALUES句中の中(INSERT),SET句(UPDATE)
  • 利用できない場所
    • SELECT文,DELETE文,およびUPDATE分中の副問い合わせ
    • DISTINCTを含むSELECT句,
    • GROUP BY 句, HAVING句,ORDER BY句を含むSELECT文
  • CREATE TABLE, ALTER TABLEの中のDEFAULT式

ロールバックについて


  • ロールバックが発生してもNEXTVALを実行したら値は戻らないので欠番が生じる
2007年09月02日(日) 17:34:41 Modified by dodobon




スマートフォン版で見る