[前][次][番号順一覧][スレッド一覧]

mysql:13683

From: "T.Hirotsu" <"T.Hirotsu" <hirotsu@xxxxxxxxxx>>
Date: Mon, 22 Jan 2007 10:42:59 +0900
Subject: [mysql 13683] Re: トランザクション中のオートインクリメント値

こんにちは、広津です。
エンジンは InnoDB と仮定します。
Ver. 4.0, 4.1, 5.0 で私もそのようにして使っています。

select LAST_INSERT_ID() は、トランザクション分離レベルや、
トランザクションブロックの内外に関わらず、Connection ごとに、
最後に自動生成された AUTO_INCREMENT カラム値を返すようです。

「最後に自動生成された」とは、「トランザクションが最終的に
Commit か Rollback かは関係なく、とりあえず Insert に成功した」
ということかと。

ですので、Rollback した場合、そのトランザクション中で自動生成
された値は、Rollback 後の自動生成値としては再使用されず欠番となります。

(でないと、逆に使えないですよね、、、(^^;)


[前][次][番号順一覧][スレッド一覧]

     13681 2007-01-22 00:00 ["Mitsuru Araki" <gun] トランザクション中のオートインクリメント値
     13682 2007-01-22 01:03 ┣[kubo <jazzflute@xxxx]                                       
->   13683 2007-01-22 10:42 ┗["T.Hirotsu" <hirotsu]                                       
     13694 2007-01-25 20:37  ┗["Mitsuru Araki" <gun]