テーブルからすべての行を削除する必要がありますが、新しい行を追加するときに、自動インクリメントを持つ主キー ID をそれぞれ 0 から 1 から再開する必要があります。
質問する
292560 次
5 に答える
338
削除せず、切り捨てを使用してください:
Truncate table XXX
テーブル ハンドラは、最後に使用された AUTO_INCREMENT 値を記憶していませんが、最初からカウントを開始します。これは、通常はシーケンス値を再利用しない MyISAM と InnoDB にも当てはまります。
ソース。
于 2012-09-29T10:20:18.193 に答える
95
使用できない場合TRUNCATE
(たとえば、外部キー制約のため)、すべての行を削除した後に、alter table を使用して auto_increment を再開できます。
ALTER TABLE mytable AUTO_INCREMENT = 1
于 2012-09-29T10:47:05.343 に答える
8
興味深い事実です。
常にパフォーマンスが向上すると確信していましたが、私の場合、数行しか入力されていない外部キーを持つ約 30 個のテーブルを持つデータベースの場合、すべてのテーブルTRUNCATE
に約 12 秒かかりました。行。自動増分を設定すると、合計で約 1 秒追加されますが、それでもはるかに優れています。TRUNCATE
DELETE
したがって、両方を試してみることをお勧めします。どちらがあなたのケースでより速く機能するかを確認してください。
于 2014-02-17T12:13:40.560 に答える