私は複数のユーザーが同時に使用できるWebアプリケーションを構築しています。彼らは同時にデータを追加することができます。mysqlで最後に挿入されたレコードのIDを正確に取得する方法は?
私は
Screenshot of DB http://img687.imageshack.us/img687/7033/testxqz.png
を次のように医者についてのレコードが追加されるとdoctor_mainという名前のテーブルを持って、私は(自動インクリメントフィールドで)挿入されたレコードのIDを返すことにしたいです。
私はLAST_INSERT_ID()やmysql_insert_idのようなメソッドを使うことができます。しかし、私はそれがどのように動作するのかわかりません。
その特定のユーザーによって挿入されたレコードの正確なIDが必要です。
2人のユーザーがレコードを挿入しようとすると、返されるIDが交換されないことがあります。
これを達成するには、どのような種類のmysql関数を使用しますか?
これは信頼できるものではありません。それはあなたのものよりも優れた心です。返されるIDは、他のユーザーのスレッドではなく、そのユーザーのスレッドによる最後の挿入のIDです。 –
LAST_INSERT_ID()は、AUTO_INCREMENT列によって自動生成されたIDに対して、MySQL接続ごとに基づいています。つまり、同じ接続でLAST_INSERT_ID()を呼び出す限り、INSERTを実行した後に並行性の問題は発生しません。 – nos
@MarkBaker Yeap、私は何年も前からこの仕事をしていたよりも、より良い考えをしてくれることを願っています。ただ疑念を持って丁寧に犯されることはない。:) –