2012-02-16 10 views
5

トラフィックの多いアプリケーションでは、mysqli_insert_id()が間違ったIDを返す可能性がありますか、またはほぼ同時に実行された2つのINSERTクエリ間のIDを混同する可能性はありますか?トラフィックの多いアプリケーションでmysqli_insert_idが不正なIDを返す可能性はありますか?

+1

素敵な質問1 – tomexsans

+0

FYIこれは[* Race Condition *](http://en.wikipedia.org/wiki/Race_condition)と呼ばれ、 –

答えて

8

No. mysqli_insert_idは、現在の接続の最新のINSERTクエリから最大でAUTO_INCREMENT値を返します。たとえば、別の接続と混乱することはありません。

1

いいえどうすればわかりますか?それは報告されて固定されていたので、長い時間前に固定された。これと同じ質問に対する前の回答から引用

1

:詳細については、http://dev.mysql.com/doc/refman/5.6/en/getting-unique-id.html

を見て、それはこのことを言う:

「LAST_INSERT_ID()の、最も最近に生成されたIDがで維持されています他のAUTO_INCREMENT 列を非魔法の値(NULLでない値、つまり が0ではない)で更新すると、変更されません。これは、他のAUTO_INCREMENTの 列を、 LAST_INSERT_ID()およびAUTO_INCREMの使用ENT列 は複数のクライアントから同時に完全に有効です。各クライアント は

だから、あなたが望むものをやって問題ないはずです「。クライアント が実行された最後の文の最後に挿入IDを受信すると、あなたは奇妙な結果を得るべきではありません。

関連する問題