ホームページ > データベース > mysql チュートリアル > 「ON DUPLICATE KEY UPDATE」を使用して MySQL レコードを効率的に挿入または更新するにはどうすればよいですか?

「ON DUPLICATE KEY UPDATE」を使用して MySQL レコードを効率的に挿入または更新するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-12 22:34:13
オリジナル
912 人が閲覧しました

How Can I Efficiently Insert or Update MySQL Records Using `ON DUPLICATE KEY UPDATE`?

「挿入と同じ重複キー更新時」を使用した効率的な 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート