首頁 > 資料庫 > mysql教程 > MySQL 的 ON DUPLICATE KEY UPDATE 如何處理多行的同時插入和更新?

MySQL 的 ON DUPLICATE KEY UPDATE 如何處理多行的同時插入和更新?

Linda Hamilton
發布: 2025-01-11 07:02:41
原創
1014 人瀏覽過

How Can MySQL's ON DUPLICATE KEY UPDATE Handle Simultaneous Inserts and Updates of Multiple Rows?

MySQL 的 ON DUPLICATE KEY UPDATE:高效處理並發多行插入和更新

在 MySQL 表中插入多行時,會出現需要在更新現有記錄之前檢查是否有唯一鍵(與主鍵不同)的情況。 ON DUPLICATE KEY UPDATE 子句提供了一個優雅的解決方案。

MySQL 8.0.19 及更高版本使用插入行的別名提供改進的語法。 這允許更清晰、更易讀的更新:

INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
    AS new
ON DUPLICATE KEY UPDATE
    age = new.age
    ...
登入後複製

對於 8.0.19 之前的 MySQL 版本(請注意,VALUES 方法從 8.0.20 開始已棄用),需要使用以下方法:

INSERT INTO beautiful (name, age)
    VALUES
    ('Helen', 24),
    ('Katrina', 21),
    ('Samia', 22),
    ('Hui Ling', 25),
    ('Yumie', 29)
ON DUPLICATE KEY UPDATE
    age = VALUES(age),
     ...
登入後複製

在這兩個範例中,如果在插入期間出現唯一鍵衝突,則會使用提供的值更新受影響的行。否則,將會新增新行。

重要的是要記住 VALUES 中的 ON DUPLICATE KEY UPDATE 並不引用現有行的值,而是引用嘗試插入新行的相應列值。

以上是MySQL 的 ON DUPLICATE KEY UPDATE 如何處理多行的同時插入和更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板