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

mysql:13681

From: "Mitsuru Araki" <"Mitsuru Araki" <gunny517@xxxxxxxxxx>>
Date: Mon, 22 Jan 2007 00:00:09 +0900
Subject: [mysql 13681] トランザクション中のオートインクリメント値

いつも勉強させて頂いております。

早速ですが、
トランザクション中のオートインクリメント値について、疑問点がありご質問いたします。
例えば、トランザクションを開始後
1.steatment1:オートインクリメント値を含むテーブルにインサート処理を実行
2.steatment2:last_insert_id()を使ってsteatment1でインサートされたオートインクリメント値を取得
3.steatment3:steatment2で取得したオートインクリメント値を他のテーブルにインサート
4.全てインサートされればコミットする
というような処理を行いたいのですが、steatment2 でsteatment1のオートインクリメント値を取得する事は可能なのでしょうか?
(つまりコミットする前でもlast_insert_id()が目的の値を返すか、それとも、トランザクション開始前の値を返すかという意味です。)

また、もし目的の値を返さない場合で、このような処理をしたい場合、
適切な方法はどのような方法なのでしょうか?

と、ここまで書いていてふと思ったのですが、
もしかして、トランザクションを開始した時点でテーブルがロックされて
自らの問い合わせ(last_insert_id())も値が戻らないのでしょうか?

よろしくお願い致します。

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

->   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]