カーソル (データベース)

From Wikipedia, the free encyclopedia

データベースにおけるカーソル: cursor)は、一連のデータに順にアクセスする際の検索条件および「現在位置」を保持するデータ要素である。

一般にデータベースは、同じ種類のデータを数多く蓄積しており、利用者が求めるデータも1件だけではなく複数件になる可能性がある。このようなケースは、カーソルを使って以下のようにイテレータの要領で実現できる。

  1. 利用者は検索条件やソート順序を指定してカーソルを定義する。
  2. パラメータを利用している場合は値を決定し、データへのアクセスを開始する。
  3. カーソル位置のデータを取得する。検索結果の終端なら7へ。
  4. 必要に応じてカーソル位置のデータを変更・削除する。
  5. カーソルを「次のデータ」へと進める。
  6. 3から繰り返し。
  7. 繰り返しの終了後、カーソルを解放する。

システムによっては5において、次のデータに進む以外に、ひとつ前のデータに戻ることも許している。

カーソルを使う理由の一つとして、クエリの結果が多数の行を持つことによる メモリのオーバーランを防ぐことが挙げられる。PL/pgSQLではメモリ問題を引き起こさないようにforループが内部で自動的に カーソルを用いるため、この心配がない。

具体例

注意点

脚注

Related Articles

Wikiwand AI