0

私の INSERT... SELECT クエリは 2,546 レコードをテーブルに挿入し、挿入されたすべてのレコードの ID 範囲を 176,439 から 178,984 にします。すべてのレコードが正常に挿入されました (178984 - 176439 + 1 = 2,546)。アプリケーションを起動して新しいレコードを 1 つ追加すると、次の ID は 180534 と表示されます。

私の innodb_autoinc_lock_mode は、「連続」を表すデフォルトの 1 に設定されています。

何かご意見は?

4

2 に答える 2

1

レコードの数は、自動インクリメント ID と一致する必要はありません。レコードが削除された可能性があります。自動インクリメントが手動またはその他の理由で設定されました。このコマンドで次のIDを設定できます

ALTER TABLE tbl AUTO_INCREMENT = 178985;

その後、ID はその数を超えて生成される必要があります。

于 2012-10-14T20:20:14.687 に答える
0

はい、他の挿入クエリを実行しました。行はおそらく一意の制約のために拒否されましたが、自動インクリメントはまだインクリメントされているか、その後削除されました。あるいは、他の誰か(または別のセッションのあなた)がトランザクションを開始し、いくつかの行を挿入したがまだコミットしなかった場合...auto_increment値も大きくなります。

于 2012-10-14T20:24:56.970 に答える