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]