プロが教えるわが家の防犯対策術!

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

A 回答 (1件)

オートナンバーが長整数型のままのmdbファイルを、レプリケーション設定すると、オートナンバー型フィールドの値がオートナンバーではなく乱数になっったりマイナスが付いた乱数になってしまいます。

(乱数に勝手に書き換えられてしまうのは、新規に追加したレコードからです。既存レコードのみは、そのままの値でコピー(レプリケート)されます。)

これはAccessが勝手に行ってしまうので、ユーザーは書き換えも何もできません。ですので、オートナンバー型フィールド(特にインクリメント=連番)を主キーにしたテーブルをいくつか含んでいるmdbにレプリケーションを設定すると悲惨なことになります。途中から連番じゃなくなってしまうんですから。

また、「主キーが連番だからこそ動作させることができる」というプログラムをもし作ってしまっていたら、それらは全て動かなくなります。


ですので、あらかじめレプリケーションID型にしておけば、レプリケーションを設定しても設定後もちゃんとレプリケーションIDのままなので安心というわけです。
でもどえらい長ったらしい値なので、僕は使ったことありません。

以上のようなことから、ぼくは主キーにはオートナンバーは使いません。長整数型かテキスト型の連番の値を、自動設定するようにプログラムを書いて設定しています。

いつ何どき、レプリケーションを設定しないといけなくなるかもしれませんので…。


    • good
    • 0
この回答へのお礼

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

お礼日時:2003/05/19 07:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A