ホームページ  >  に質問  >  本文

データベースへの挿入を実行して重複キーエラーを検出します

私のアプリケーションは重複した主キー データを挿入する可能性があります。最も効率的な方法は何でしょうか。挿入する前にキーが既に存在するかどうかを確認するか、それとも単に挿入して銀行にエラーを返してから処理させるのが最も効率的でしょうか?どちらが影響が少ないでしょうか? ありがとう###

P粉920835423P粉920835423205日前385

全員に返信(1)返信します

  • P粉362071992

    P粉3620719922024-03-29 07:32:06

    最も効率的な方法は、ON DUPLICATE KEY UPDATE 句を指定した INSERT クエリを使用することです。

    主キーが存在しない場合は、新しいレコードが挿入されます。主キーがすでに存在する場合は、主キー レコードの指定されたフィールドのみが更新されます (エラーはスローされません)。

    たとえば、user_id が存在しない場合、次のコードは新しいユーザーを作成します。 user_id が存在する場合にのみ、last_visited_date が更新されます。

    リーリー

    このアプローチにより、1 つのクエリで新しいレコードの作成と既存のレコードの更新が可能になり、既存の主キーを確認する必要がなくなります。

    注: 主キーが自動インクリメントインデックスの場合、MySQL は ON DUPLICATE UPDATE 句を INSERT クエリと同じように扱うため、次の ID がインクリメントされます。 by < code>1 主キーがすでに存在している限り。

    ON DUPLICATE KEY UPDATE 句を使用したくない場合は、既存の主キーのエラーを捕捉することが最もパフォーマンスの高いアプローチになります。

    返事
    0
  • キャンセル返事