2012-03-21 10 views
0

私はちょうどjdbcを学び始め、それを使ってさまざまなテストを始めました。jdbc 4接続ロールバック自動インクリメントの問題

私は、次のような状況に出くわした

  • セットのセーブポイント
  • (プリペアドステートメントを作成し、
  • が実行存在しない外部キーの値を持つテーブルに(挿入データを実行してみてください)メソッドが失敗し、ロールバックします
  • 有効なクエリを実行すると、行がデータベースに挿入されますが、主キーはn + 1(nは最後に挿入された値)ではなくn + 2に設定されます。クエリが失敗しても、インデックスの自動インクリメントを推測してください。

これを回避してn + 1を設定するメカニズムはありますか?

注。私はMySQLを使用しています。

ありがとうございました。

+2

どのように読んでhttp://stackoverflow.com/questions/449346/mysql-auto-increment-does-not-rollback topic? –

+0

私はその投稿に同意しますが、私は自分のアプリのロジックでそれを考慮したくありません。私はなぜ現象が起こっているのか、これを克服する方法があるのか​​疑問に思っていました。 – Radu

+0

これは、id生成がトランザクションとは独立しているために発生します。たくさんの努力なしにそれを克服する方法はありません。 IDに意味を割り当てないでください。 – Hiro2k

答えて

0

この動作は、MySQL auto_incrementでは正常です。 さて、あなたはmysql_insert_id()を使っていくつかの魔法を行うことができます。

関連する問題