• ベストアンサー

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

  • Accessのオートナンバーについて

    Access2002を使用しています テ-ブルのデータ型をオートナンバーに指定して 使用していました。 自動で今までできた数字をすべて消して1からやり直したいのですが どうしたらいいでようか? ちなみにテーブルのデータを消して作り直しても続きからになってしまいました。

  • アクセス2000 オートナンバーについて

    いつもお世話になります。 アクセス2000を使用しているのですが、Dsum関数を使用したいので、時系列を付けるためにオートナンバーを付けています。必要データが日々変わるためにこのテーブルは全データを削除し追加クエリーを使用して計算もとのテーブルをその都度必要なデータのみにしています。 現在テスト中で特に問題はないのですが、本稼動した場合、オートナンバーが一日に10000程になってしまいます。計算に使うレコード数は200程度なのですが、処理作業を1日に50回程度行いますので。 2年程度メンテナンスはする予定をしていないので、このままではオートナンバーが7000000程度になってしまいます。オートナンバーの数字が多くなることによるエラー等は発生しないのでしょうか。またオートナンバー以外に連番をふる方法はあるのでしょうか。 宜しくお願い致します。

  • オートナンバー型を変換したい

    いつもお世話になります。 QNo.2611889 関連質問です。 VB.NET2003+Access2000環境で作成したMDBのテーブルのうち、 オートナンバー型で作成されているフィールドのデータを数値型かテキスト型に変換できる関数はないでしょうか? たとえば Value とか Cstr みたいな。 ご存じの方よろしくお願いいたします。

  • mdbファイル

    こんにちは。 Accesseのmdbファイルにていて教えてください。 OracleテーブルのPrimaryKeyのような設定をmdbのテーブに出来るのでしょうか? 例えばOracleのAテーブルの構造が以下の場合 mdbのテーブルでは、どのように設定するのしょうか? Oracleテーブル テーブル名:test 項目1:A 項目2:B 項目3:C 項目4:D Primary key A,C,D

  • アクセスでオートナンバーをリセットするには?

    Accessで連番をふるプロセスで質問です。 データをあるテーブルに追加した時に、連番をふりたいと考えています。 最も簡単なのはオートナンバーフィールドを設定する方法なのですが、この場合一つ欠点があります。 それはレコードを全削除した場合でもナンバーがリセットされないという事です。 追加クエリでテーブルにデータを追加する前に必ずテーブルのレコードを全削除するのですが、 この際にオートナンバーも一緒にリセットする方法は無いでしょうか? また、質問の題名とは変わってしまうかもしれませんが、 オートナンバーを使用せずにレコードに連番をふる方法があればご教授下さい。

  • オートナンバーの初期値が22になっています!

    新規にデータを入れようとテーブルを作成して、オートナンバー型のID列を作ったら初期値が22から始まっています。 1から始まるように設定したいので方法を教えて下さい。

  • オートナンバー型を1から始める方法はありますか?

    アクセスのVBAで mySQL = "DELETE Tテーブル.* FROM Tテーブル;" DoCmd.RunSQL mySQL を実行して テーブルのデータをすべて削除してから、 データを追加するコードを実行しているのですが オートナンバー型のフィールドが前回の続きの値から始まります。 運用上問題ないのですが 途中の数字から始まってスッキリしません。 削除クエリを実行しても オートナンバー型を1から始める方法はありますか?

  • Accessのオートナンバーについて

    いつもお世話になります。 Access2002を勉強中の初心者です。 オートナンバーのフィールドを持つテーブルを使用していますが、オートナンバーの最大値はいくつなんでしょうか? また、レコードがその最大値を超えた場合はどうなるのでしょうか? (1に戻るのでしょうか? それともエラーになるのでしょうか?) よろしくお願いします。

  • ACCESS2000でオートナンバーを1から付けたいのですが

    ACCESS2000のテーブルで新規に作ったときはオートナンバーフィールドが1からになるんですが、何度かレコードの試験入力や削除を繰り返しているうちに、頭の番号が増えていきます。テーブルのデザインで、オートナンバーをテキスト型にして、新しいオートナンバー型行を挿入しても1からになりません。なにかよい方法はないでしょうか?

  • MDBファイル→ORACLEテーブル

    いつもよく拝見させてもらってます。 今回初めて投稿させていただきますので何とぞ色々な面でご教授のほどよろしくお願いしますm(_ _)m  本題ですが、VB6を使いACCESSのMDBファイルをORACLEのテーブルにエクスポートするやり方を考えております。  Commandボタンを用意し、それをクリックしたらORACLEのテーブルにデータが入るというプログラムを作成しているのですが、ADOを使いMDBファイルのデータを落とす事まではできたのですが、ORACLEへの登録の仕方が分からないのでどなたかアドバイス又は参考となるサイト等ありましたらよろしくお願いします。  まだまだ初心者で分からない事だらけですので、何か他に情報が必要な際は、ご連絡ください。