2017-09-06 8 views
-1

以下のコードでトランザクションを使用する場合、LAST_INSERT_ID()が最初の挿入に属していない可能性はありますか?つまり、INSERT INTO comments (comment) VALUES ('kthanksbuy');のような異なるユーザーのやりとりから別の挿入アクションを実行することが可能ですか?その場合、LAST_INSERT_ID()はユーザーのIDではなくコメントIDになりますか?トランザクションでLAST_INSERT_ID()が失われるリスク

BEGIN; 
INSERT INTO users (username, password) 
    VALUES('john', 'pass'); 
INSERT INTO profiles (userid, bio, homepage) 
    VALUES(LAST_INSERT_ID(),'I am a lumberjack, and I am ok!', 'http://www.stackoverflow.com'); 
COMMIT; 

ありがとうございます。

答えて

0

LAST_INSERT_ID() - 最後のINSERTのAUTOINCREMENT列の値。

以上:LAST_INSERT_ID()は、最後に実行されたINSERT文の結果としてAUTO_INCREMENT列に正常に挿入された最初に自動生成された値を表すBIGINT UNSIGNED(64ビット)値を返します。それはofficial documentationからです。

そして、それは間違いなく最初のインサートではありません...

+0

はああ、私はその一例の最初のインサートを意味し、またはそれ以上のaccuratly以前のインサート(最新)。 – user126440

関連する問題