「挿入と同じ重複キー更新時」を使用した効率的な MySQL クエリ
一意のキーに基づくレコードの挿入または更新を伴う MySQL クエリを最適化するにはキーを使用する場合は、「重複キーの更新時」句を活用することが重要です。この句を使用すると、挿入中に重複キーが見つかったときに実行するアクションを指定できます。
一意のキーを持つレコードを挿入する場合、「重複キーの更新時」句を指定して既存のキーを更新できます。キーがすでに存在する場合のフィールド。これにより、すべてのフィールド値を再度明示的に指定する必要がなくなり、より簡潔で効率的なクエリが提供されます。たとえば、指定された MySQL クエリを考慮します:
INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8)
「id」フィールドに一意のインデックスがある場合、次を使用して同じキーで既存のレコードを更新できます:
INSERT INTO table (id, a, b, c, d, e, f, g) VALUES (1, 2, 3, 4, 5, 6, 7, 8) ON DUPLICATE KEY UPDATE a=VALUES(a), b=VALUES(b), c=VALUES(c), d=VALUES(d), e=VALUES(e), f=VALUES(f), g=VALUES(g)
この場合、「重複キーの更新時」句は、挿入句のそれぞれの値で「a」から「g」フィールドを更新します。これにより、すべてのフィールド値を明示的に繰り返す必要がなくなり、クエリが簡素化されます。
ただし、テーブル内の既存の値が挿入される値と一致する場合、更新アクションは実行されないことに注意してください。これは、フィールドがすでに目的の値を保持している場合、フィールドを更新する必要がないためです。
挿入または更新されたレコードの ID を取得するには、「LAST_INSERT_ID()」関数を使用できます。この関数にアクセスするための具体的な構文は、使用されているバックエンド アプリケーションによって異なります。たとえば、LuaSQL では、「conn:getlastautoid()」を使用して、最後に自動生成された ID を取得できます。
以上が「ON DUPLICATE KEY UPDATE」を使用して MySQL レコードを効率的に挿入または更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。