• ベストアンサー

Accessのオートナンバー型をレプリケーションIDにする意味は?

こんにちは。 Access2002を使っていますが、 テーブル設計時にデータ型をオートナンバー型にして レプリケーションIDにする意味は何でしょうか? 長整数型はわかるのですが。。。 よろしくお願い致します。

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

  • ベストアンサー
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.1

オートナンバーが長整数型のままのmdbファイルを、レプリケーション設定すると、オートナンバー型フィールドの値がオートナンバーではなく乱数になっったりマイナスが付いた乱数になってしまいます。(乱数に勝手に書き換えられてしまうのは、新規に追加したレコードからです。既存レコードのみは、そのままの値でコピー(レプリケート)されます。) これはAccessが勝手に行ってしまうので、ユーザーは書き換えも何もできません。ですので、オートナンバー型フィールド(特にインクリメント=連番)を主キーにしたテーブルをいくつか含んでいるmdbにレプリケーションを設定すると悲惨なことになります。途中から連番じゃなくなってしまうんですから。 また、「主キーが連番だからこそ動作させることができる」というプログラムをもし作ってしまっていたら、それらは全て動かなくなります。 ですので、あらかじめレプリケーションID型にしておけば、レプリケーションを設定しても設定後もちゃんとレプリケーションIDのままなので安心というわけです。 でもどえらい長ったらしい値なので、僕は使ったことありません。 以上のようなことから、ぼくは主キーにはオートナンバーは使いません。長整数型かテキスト型の連番の値を、自動設定するようにプログラムを書いて設定しています。 いつ何どき、レプリケーションを設定しないといけなくなるかもしれませんので…。

nkayo
質問者

お礼

詳細な回答を本当にありがとうございます。 とてもよくわかりました! 納得です^^ 本当にありがとうございました!

関連するQ&A