7

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

4

4 に答える 4

11

No.は、現在の接続での最新のクエリから最も多くの値をmysqli_insert_id返します。たとえば、別の接続と混同されることはありません。AUTO_INCREMENTINSERT

于 2012-02-16T16:39:57.383 に答える
4

いいえ、どうすればそんなに確信が持てますか? それはずっと前に報告され、修正されていたからです。

于 2012-02-16T16:41:06.790 に答える
3

このまったく同じ質問に対する以前の回答から引用します。

詳細については、http://dev.mysql.com/doc/refman/5.6/en/getting-unique-id.htmlを参照してください。次のように書かれています。

「LAST_INSERT_ID() の場合、最近生成された ID は接続ごとにサーバーで維持されます。別のクライアントによって変更されることはありません。別の AUTO_INCREMENT 列を非魔法の値 (つまり、 NULL でも 0 でもない値です。複数のクライアントから LAST_INSERT_ID() 列と AUTO_INCREMENT 列を同時に使用することは完全に有効です。各クライアントは、クライアントが最後に実行したステートメントの最後に挿入された ID を受け取ります。

ですから、やりたいことをうまくやっていて、奇妙な結果が得られるべきではありません。

于 2012-02-16T16:50:38.237 に答える