2

SELECT Max(ID)FROMテーブルを使用する方が、2つの別々のクエリとして実行されるSELECT last_insert_id()を使用するよりも安全ですか?

last_insert_id()を実行する前に、別の挿入が行われるのではないかと心配しています。

4

2 に答える 2

12

SELECT last_insert_id()を使用するよりも安全にSELECT Max(ID)FROMテーブルを使用していますか

絶対にありません、決して!LAST_INSERT_ID()あなたが述べた理由で正確に存在します:他のクライアントが他の挿入を行った可能性があります。LAST_INSERT_ID()現在の接続で最後に挿入されたIDを常に提供します。

mySQLリファレンス

于 2010-07-05T15:11:53.223 に答える
3

使用するselect max(id)ことは単に問題を求めているだけです。2つの挿入がほぼ同時に行われ、データに狂気が見られるようになるのは時間の問題です。

于 2010-07-05T15:24:11.420 に答える