考慮這樣的場景:您打算將資料新增至表中,但面臨在更新現有行時插入新行的挑戰是基於特定列(日期數字)的唯一性。
要滿足此要求,您可以先嘗試使用問題中舉例說明的更新語句;但是,此方法僅限於修改現有行。對於表中不存在datenum值的場景,不會採取任何動作。
為了完成基於datenum唯一列的插入和更新,MySQL提供了INSERT ... ON DUPLICATE KEY UPDATE句法。此語法可讓您定義一個插入操作,如果遇到重複鍵,該操作會自動更新行。
這是使用INSERT ... ON DUPLICATE KEY UPDATE 語法的UPDATE 語句的改進版本:
在此語句中,INSERT 子句中使用了唯一鍵列datenum,而Timestamp 的更新值則在ON 中指定DUPLICATE KEY UPDATE 子句。這確保如果已經存在具有相同 datenum 的行,則 Timestamp 欄位將使用提供的值進行更新,而其他欄位保持不變。
透過採用此技術,您可以實現插入新行和更新基於唯一鍵列的 MySQL 表中的現有行。
以上是如何根據唯一鍵插入或更新 MySQL 行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!