0

データベースを操作するだけで、セットアップの整合性をチェックするいくつかのテストが最近行われました。

その結果、多数のテスト エントリが追加され、その後削除されました。ただし、新しいエントリが追加されると、ID 番号の値はエントリが追加された後から継続されます。

私が欲しいもの: ID は、追加の行が追加される前に中断したところから 1 ずつ増加します: 4203、4204、4205、4206 など。

何が起こっているか: ID は追加の行 ID の後から 1 ずつ増加します: 4203、4204、6207、6208 6209 など。

これを修正する場所がわからない... phpmyadmin か PHP コードか。どんな助けでも大歓迎です。ありがとう!

4

4 に答える 4

2

以前にこれに遭遇したことがありますが、phpMyAdmin で簡単に解決できます。データベースを選択し、テーブルを選択して、[操作] タブを開き、[テーブル オプション] で AUTO_INCREMENT を 1 に設定し、[GO] をクリックします。これにより、mysql は最後に自動インクリメントされた値を検索し、その直後の値に設定するようになります。行をテストして削除するとAI値が修正されるため、行がスキップされたときにテストではなく削除であることがわかります。

于 2013-06-07T21:12:56.247 に答える
1

自動インクリメント ID キーでこれを行う方法はないと思います。ID を (select max(id) + 1 from the_table) に割り当てることで、おそらくそれを行うことができます。

于 2013-06-07T21:03:34.727 に答える
0

主キーを削除してから再作成することもできますが、これにより既存のすべての主キーが再割り当てされるため、関係に問題が発生する可能性があります (ただし、主キーにギャップがない場合は、問題を回避できます)。

ただし、ID が欠落している可能性を受け入れる (そしてアプリに反映させる) 必要があると思います。たとえば、Web アプリで誰かが不足している ID にリンクしている場合、別のレコードではなく 404 が返されるようにする必要があります。

于 2013-06-07T21:13:54.870 に答える