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

mysql:7536

From: Tatsuhiko Miyagawa <Tatsuhiko Miyagawa <miyagawa@xxxxxxxxxx>>
Date: Thu, 17 Apr 2003 19:22:45 +0900
Subject: [mysql 07536] Re: insert したデータの KEY を得るには?

宮川です。
At Thu, 17 Apr 2003 18:42:24 +0900,
aimitsu katoh wrote:
> 
> とみたまさひろ さんWrote:
> >
> >Perl の DBI は詳しくないですが、INSERT 後に SELECT LAST_INSERT_ID; と
> >すれば取得できると思います。

$dbh->{mysql_insertid} で取得できます。
> 
> 返信ありがとうございます。
> やはり上記方法が一般的なのでしょうか?
> この方法だと INSERT -------> SELECT LAST_INSERT_ID; の間にINSERT命令が入ってしまった場合に
> 正しい値が取得できないのではないかと思っています。

LAST_INSERT_ID はConnection毎にキャッシュされるので上記SQL文でも問題なく取得できます。
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_Reference.html#Miscellaneous_functions

> MySQLに排他ロックをかける方法とかってあるのでしょうか?

GET_LOCK()関数や LOCK TABLES などの方法がありますが、INSERT_ID の取得
では必要ありません。


-- 
Tatsuhiko Miyagawa <miyagawa@xxxxxxxxxx>

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

      7529 2003-04-17 18:04 [aimitsu katoh <akimi] insert したデータの KEY を得るには?    
      7532 2003-04-17 18:32 ┣[とみたまさひろ <tomm]                                       
      7534 2003-04-17 18:42 ┃┗[aimitsu katoh <akimi]                                     
->    7536 2003-04-17 19:22 ┃ ┗[Tatsuhiko Miyagawa <]                                   
      7537 2003-04-17 19:38 ┃  ┗[aimitsu katoh <akimi]                                 
      7535 2003-04-17 18:53 ┣["TOYOSHIMA,Masayuki"] auto_increment int 型について         
      7538 2003-04-17 23:55 ┃┗[とみたまさひろ <tomm]                                     
      7540 2003-04-18 06:46 ┗["KAWAI,Takanori" <GC]