首頁 >資料庫 >mysql教程 >如何在插入期間使用 MySQL 的 ON DUPLICATE KEY UPDATE 更新現有行?

如何在插入期間使用 MySQL 的 ON DUPLICATE KEY UPDATE 更新現有行?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-30 02:30:13593瀏覽

How to Update Existing Rows During an INSERT Using MySQL's ON DUPLICATE KEY UPDATE?

使用“INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE”

當使用MySQL 執行插入操作時,它如果發生唯一鍵衝突,可以更新現有行。這可以使用“INSERT INTO ... SELECT FROM ... ON DUPLICATE KEY UPDATE”語法來實現。

在給定的查詢中,旨在從臨時表('tmp')插入​​行進入“lee”表。如果「lee」中已存在具有相同唯一鍵(在本例中為「id」)的行,則查詢應將特定列更新為「tmp」表中的值。

UPDATE 的語法此場景中的子句如下:

ON DUPLICATE KEY UPDATE column1=SELECT_column1, column2=SELECT_column2, ...

這裡,「column1」指的是「lee」表中的列,「SELECT_column1」指的是引用SELECT子句中的對應列。透過指定這些對,MySQL 決定使用 SELECT 中的新值更新哪些欄位。

對於提供的查詢,UPDATE 子句將如下所示:

ON DUPLICATE KEY UPDATE entct=t.entct, inact=t.inact, inadur=t.inadur, inadist=t.inadist, smlct=t.smlct, smldur=t.smldur, smldist=t.smldist, larct=t.larct, lardur=t.lardur, lardist=t.lardist, emptyct=t.emptydur, emptydur=t.emptydur

這可確保當遇到重複鍵時,「entct」、「inact」、「inadur」等列將使用臨時表中對應列的值進行更新。

以上是如何在插入期間使用 MySQL 的 ON DUPLICATE KEY UPDATE 更新現有行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn