私のテーブルには、自動インクリメント整数の列名idがあります。私はテーブルを切り捨てて、それから1から始まる挿入クエリを実行しようとすると、私は操作を削除して挿入しようとすると、それは以前の値から再開します。なぜ挿入クエリは、削除と切り捨てに対して異なる動作をするのですか?テーブルにエントリがない場合、常に1から開始する必要があります。1から切り捨て開始後に挿入します。以前の値から削除を挿入した後
答えて
電流maxに挿入autoincrement関数の値はテーブル定義に格納されます(show create table idle
を実行すると表示されます) tからすべての行を削除すると彼はテーブル、オートインクリメントの値は同じままになります。テーブルを切り捨てると、基本的にテーブルが削除されて再作成され、自動インクリメントの値が0にリセットされます。
これが役に立ちます。
と削除操作後に1から開始する必要がある場合、何か方法はありますか? – WeAreRight
@ JoneDotosvkyには 'id> 0'がありますか? – MohaMad
MohaMad氏が指摘しているように、 'ALTER TABLE tablename AUTO_INCREMENT = 1;'は開始値を1に設定する必要があります。 –
私はあなたがdelete
クエリの後にこのクエリを実行し、自動インクリメントをリセットしようとしていると思う:
ALTER TABLE tablename AUTO_INCREMENT = 1 ;
注:あなたは、いくつかのIDを削除し、1にidをリセットした場合、重複キーに注意して、IDしばらく= 2またはnが存在する!
カウンタは、既に使用されている値以下の値にリセットすることはできません。 MyISAMの場合、値が現在AUTO_INCREMENT列にある最大値以下であれば、その値は現在の最大値+1にリセットされます。 InnoDBの場合、値がカラムの現在の最大値よりも小さい場合、エラーは発生せず、現在のシーケンス値は変更されません。
いくつかの他のアクションとリアクションはあなたが切り捨てそれがthis.wheneverのように振る舞うされる理由ですid
でAUTO INCREMENT
を与えるthis topic
に言及したそのアイデンティティをリセットしながら、削除操作の最後の値から、その開始の場合、あなたのID。この動作を望まない場合はインデックスをid
フィールドから削除してください。
- 1. ストアドプロシージャは切り捨てられた値を挿入します
- 2. DBに挿入した後に小数点以下を切り捨てます
- 3. 挿入前と削除後
- 4. データベースに挿入する前に値を切り捨てる
- 5. 切り捨てと挿入
- 6. 切り捨てエラーSQL Server 2005の挿入/削除
- 7. テキストボックスを挿入してから更新した後に保存
- 8. mysql - 挿入後5分でテーブルから削除
- 9. 新しいデータを挿入する前にテーブルを切り捨てます
- 10. NSManagedObjectContextでの削除後の挿入
- 11. 挿入/更新/削除後のsqlalchemyフラスコ
- 12. 切り捨て、1つのトランザクションに挿入MySQL
- 13. laravel - データベースlarovelからupdated_atとcreated_atカラムを削除した後に挿入しようとしました
- 14. トランザクション内に挿入した後に削除
- 15. 挿入前または挿入後にSQL Serverの既定値が生成されていますか?
- 16. .net型のデータセットから挿入すると、メモフィールドの値が約1000文字に切り捨てられます
- 17. 挿入先選択から削除
- 18. ビジュアルビューからポップアップを開始して、HTMLビューにコードを挿入します。
- 19. 挿入/更新クエリから最後に挿入されたIDの戻り値を取得
- 20. フォーム入力値のテキストが切り捨てられました
- 21. Mysqlは挿入と削除を1つにトリガしますか?
- 22. GetChanges()からエンティティを削除しています。Legalを挿入しますか?
- 23. ファイルからテキストを挿入した後のTkinter CPUアクティビティ
- 24. リンク/ボタンから開いた後、外部ページのフォームフィールドに値を挿入する方法はありますか?
- 25. データをデータベースに挿入する前または挿入後にフォーマットしますか?
- 26. 挿入後にUUID()の値を取得しますか?
- 27. 挿入前後のIDを保存しますか?
- 28. コンボボックスのアイテムをCでデータセットからバインドした後に挿入します。
- 29. IndexedDb。空にアイテムを挿入する(以前に削除したもの)
- 30. 間、私は削除する必要がありcomma.Iで区切ら日付値を挿入しています「LeaveTakndates」は、この分野では、日から最後のカンマを削除し、これは私が使用し、挿入手技である
FYI ...削除操作の際にIDをリセットすると、id + 1の最後の値から開始します。 –
削除と切り捨ての別の主な相違点であるupperを指摘しました –
これは予想される動作はhttps://dev.mysql.com/doc/refman/5.7/en/delete.html見出しの自動インクリメント列の下を参照してください。すべてを削除した後にリセットする必要がある場合は、alter tableまたはdrop tableを使用してください。 –