• ベストアンサー

mdbのオートナンバー型

こんにちわ。 いまmdbでテーブル定義をしています。 ところでmdbのデータ型には"オートナンバー型"というのがありますが,これはORACLEで言うところの"ROWID"のようなものなのでしょうか? "オートナンバー型"を使用する意味,あるいはメリット/デメリットなど教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

ROWIDのようにデータベース内のどのデータファイルの何番目のデータブロック中の何番目のレコードといったレコードの物理的な位置を表すまでは行きません。 自動で連番を振ってくれるSEQUENCEと同じと考えて良いと思います。 CREATE SEQUENCEで連番を振る代わりにmdbのテーブルにデータ型でオートナンバー型のフィールドを作りテーブルに保存順に連番を振ってくれます。 メリット: SQLを投げなくてもテーブルにフィールドを追加するだけで連番を振ってくれる。一意のフィールドとして使える。 デメリット: 一度作ったオートナンバー型のフィールドの連番はそのままでは一度テーブル内のレコードを全て削除して新たにレコードを追加しても今までの続きで連番を振る。(これはオートナンバー型で同一フィールドとした場合は他テーブルへのレコード移動で一意を持たせたままという事に関してはメリットなのかもしれませんが) 1からの連番を再度採番したい場合はオートナンバー型のフィールドをテーブルから削除し新たにフィールドを作りオートナンバー型としないと採番できない。 CREATE SEQUENCEを投げた方が手間がいらない。 こんな感じでしょうか。

tatsurou
質問者

お礼

O_cyanさん 回答ありがとうございます。 大変わかりやすく教えて頂きまして理解できました。

その他の回答 (1)

  • asahina02
  • ベストアンサー率47% (95/202)
回答No.1

ROWIDよりは単純にシーケンスに近いかと思います。 ただ、ROWIDと同じく各行を一意に識別するように使うことが多いのではないかと。

tatsurou
質問者

お礼

asahina02さん 回答ありがとうございます。 やはりデータを一意に識別することはできるのですね。

関連するQ&A