0

データベースに、自動インクリメントである ID とテキストである名前2 つの列しかないテーブルがあるとします。最初に 2 つの名前を追加してから両方の名前を削除し、次に別の名前を入力すると、ID カウントは 3 番から始まりますが、1 番から始まります。

質問は、削除された最後の ID 番号からインクリメントを継続するのではなく、ID のすべての値が削除されたら ID をリセットして 0 から開始する方法はありますか?

4

6 に答える 6

1

AUTO_INCREMENT値をリセットするSQLクエリは次のとおりです。

ALTER TABLE tablename AUTO_INCREMENT = 0
于 2013-01-20T05:33:00.543 に答える
0

はい、できます

ALTER TABLE mytable AUTO_INCREMENT = 0

しかし、なぜわざわざ?宇宙にはたくさんの数字があり、32ビットでもあります!

于 2013-01-20T05:33:31.623 に答える
0

私はこれがあなたが探していることをするだろうと思います。

ALTER TABLE table_name AUTO_INCREMENT = 1;

于 2013-01-20T05:34:14.233 に答える
0

ALTER TABLE yourtable AUTO_INCREMENT = 1

于 2013-01-20T05:34:25.943 に答える
0

確かにあります!

ALTER TABLE 'mytable' AUTO_INCREMENT = 0;

これにより、自動増分が0にリセットされ、そこから続行されます。

MySQL-devからの一般的な注意:

すでに使用されている値以下の値にカウンターをリセットすることはできません。MyISAMの場合、値が現在AUTO_INCREMENT列にある最大値以下の場合、値は現在の最大値に1を加えた値にリセットされます。InnoDBの場合、値が列の現在の最大値よりも小さい場合、エラーは発生せず、現在のシーケンス値は変更されません。

于 2013-01-20T05:37:59.663 に答える
0

Truncateを使用できます。

TRUNCATE TABLE yourtable;

これは、テーブルのすべての行を削除するのと似ていますが、自動インクリメントを0にリセットするなどのいくつかの違いがあります。

于 2013-01-20T05:38:26.573 に答える