質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

3回答

5619閲覧

ACCESSテーブルで主キーのオートナンバーを初期化したい

yuujiMotoki

総合スコア90

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2018/09/14 01:32

編集2018/09/14 02:21

ACCESSのテスト運用から、実運用に切り替えようとしていますが
すでにテストデータが、実運用に近いデータになっております。

データは主キーにオートナンバーを使っており、また主キーで他テーブルとのリレーションを設定しております。

ネットで調べると、オートナンバーの振りなおしは、削除、初期化、追加でできるらしいのですが、
外部キーで内部結合しております。

データの入力しなおしは避けたいと思っているのですが、このままリレーション関係を維持した状態で
主キーの振りなおしは可能なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

投稿2018/09/17 12:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/17 12:08

「Access オートナンバー 初期化」で検索したらgoogleでもbingでもyahooでも先頭に出てきましたよ。
guest

0

何故採番しなおしたいのでしょう? 抽出結果に連番を振りたいということなら、別の手段を考えた方が良さそうです。

オートナンバーの主キーはそれが使われているテーブルのなかでレコードを一意に識別するためだけのもので、それ以上のものではない(連番とかは意味がない)と考えるべきと思います。

投稿2018/09/14 02:38

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuujiMotoki

2018/09/14 02:43

オートナンバーについては、レコードの整列順番のようなイメージを持っております。自動に生成するのは、ありがたく、一意のデータ以上の位置づけにはなってしまっています。
退会済みユーザー

退会済みユーザー

2018/09/14 02:46

連番にはならないはずです。例えば、レコードを削除したり、insert に失敗してロールバックされたりすると、番号は飛んでしまうはず。
guest

0

ベストアンサー

リレーションに関係していないオートナンバーのリセットなら、テーブルのデザインで該当項目を一旦削除して、再度追加すれば、1から振り直されます。

追記

※質問が変更されたので追記

ネットで調べると、オートナンバーの振りなおしは、削除、初期化、追加でできるらしいのですが、
外部キーで内部結合しております。

リレーションに関係しているなら、その関係を保ったまま振り直しということは、そこにはルールを持っての振り直しが必要です。
参照整合性によって親の変更は子に自動で伝播されますが、親の変更はUPDATEするしかないですね。
変更時のキー重複を避けるには、番号の帯域を重ならないようにして行う必要があります。

例えば、現在の番号を1万番台に変更(オートナンバーに1万を加算)した後で、そのデータを1からの連番にルールに従って更新する。
最後にオートナンバーの最終値をalterで変更する。
とか。

ただ、オートナンバーを採用した時点で、それがきれいに並んで欲しいとか、数値に意味を持たせるなどを考えては駄目です。

投稿2018/09/14 01:48

編集2018/09/14 03:00
sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/09/15 10:55

「参照整合性」ではなく「フィールドの連鎖更新」ですね(参照整合性も必要ですが)。 あと、オートナンバー型のフィールドは更新できません。
sazi

2018/09/15 11:23 編集

フォローありがとうございます。 >オートナンバー型のフィールドは更新できません。 でしたね。 値に意味を持たせたいなら、この際型を数値型に変えた方が良さそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問