13

私はIDを持つテーブルを持っています、このIDは自動インクリメントと主キーです、そのテーブルに初めて挿入したとき、IDは0から始まりますが、そのテーブルからすべての値を削除して再度挿入した後、IDはしません0から開始するのではなく、IDが持っていた最後の値から開始します。何が問題になっていますか?値を0にリセットできますか?

4

4 に答える 4

18

次を使用してテーブルを切り捨てることができます

TRUNCATE `table`

切り捨ては、テーブル内のすべてのデータを削除します。TRUNCATEを使用しても、のようなDELETEトリガーは発生しないことに注意してくださいDELETE

または、を使用してカウントをリセットできます

ALTER TABLE `table` AUTO_INCREMENT = 1

ただし、これは予想される動作です。テーブルが本当に空でない限り、後者を実行しないでください。

于 2012-05-25T11:27:17.133 に答える
5

値0の主キーを挿入するには、最初に次の要求を実行します。

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
于 2014-01-07T16:51:46.190 に答える
3

テーブル内のすべての要素を削除しても、主キーには影響しません。主キーは、最後の値から引き続き自動インクリメントされます。

主キーをリセットする場合は、テーブルの切り捨てを試みることができます。

TRUNCATE TABLE yourtable;

これにより、テーブルからすべての要素がクリアされます。主キーをリセットするかどうかは、データベースによって異なります。Mysqlを使用すると、MysqlがTRUNCATEでテーブルを削除して再作成するため、機能するはずです。

于 2012-05-25T11:28:48.677 に答える
1

auto_incrementを1から再開するには、TRUNCATEステートメントを使用する必要があります。これは、ブレーキをかけないようにするための通常の動作です。

于 2012-05-25T11:25:01.703 に答える