web-dev-qa-db-ja.com

テーブルの主キーをリセットする方法は?

テーブルtbphotosには100個のレコードがありました。その後、すべてのレコードを削除しましたが、データ入力を再開したいので、主キーが1から開始されず、101から開始することがわかります。

主キーをリセットする方法はありますか?

MySQL管理者アカウントを使用しています。

50
Kaveh

alter table foo AUTO_INCREMENT = 1

85
Donnie

次のように自動インクリメントをリセットできます。

ALTER TABLE tablename AUTO_INCREMENT = 1

しかし、自動インクリメント値に依存している場合、プログラムは非常に脆弱です。プログラムが機能するためにレコードに連続した番号を割り当てる必要がある場合は、そのために別の列を作成し、この目的のためにデータベースの自動インクリメントIDを使用しないでください。

29
Mark Byers

手動でレコードを削除する代わりにTRUNCを使用すると、主キーがリセットされます。

3

以下のコードは、データベースにデータが既にあるが、データを削除せずにIDを1からリセットしたい場合に最適です。 SQLコマンドでコピーして実行

ALTER TABLE members DROP ID;
ALTER TABLE members AUTO_INCREMENT = 1;
ALTER TABLE members ADD ID int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
2
icynets