3

私はテーブルを持っています-idそれはauto_incrementであり、email列はであると定義されていますUNIQUE

auto_increment1に設定するとします。

私のstored procedure場合INSERT、一意の電子メールIDを持つ新しい行は、auto_increment列がインクリメントされます。正しい動作。

今、私INSERTが同じメールをもう一度しようとするUNIQUE KEYと違反します。これを確認して実行しROLLBACKます。ただし、auto_incrementは2に設定されています。なんで?

の3回目の試行ではINSERT、今回は一意の電子メールで行が挿入されますが、idフィールドの値は3です。良くありません。

値を2にデクリメントする方法はありますか?

4

1 に答える 1

5

これを確認してください:MySQLAUTO_INCREMENTはロールバックしません

最も重要な点は次のとおりです。自動生成されたキーの数値機能に依存してはなりません。

于 2012-06-05T13:09:00.647 に答える