[MySQL] ON DUPLICATE KEY用法

  • 23113
  • 0

摘要:[MySQL] ON DUPLICATE KEY用法

在實務上我們為了保持資料表的內容不會重複

通常會設定一個或數個欄位作為Primary key

 

而現在有個需求是新增一筆球員資料(假設sn欄位設定為PK)

INSERT INTO Player(sn, playerName, height, weight)
VALUES ('12', 'Kevin', 177, 72)

 

在下這個SQL語法之前

我們會做事前檢查PK值是否已經存在避免跳出例外

所以還要再寫一段SELECT語法...

SELECT *
FROM Player
WHERE sn = '12'

 

對於寫作上來說似乎有點冗長

如果現在的功能需求是「新增一筆資料,如果資料已經存在改成更新

那太好了,MySQL剛好有對應的語法可用

INSERT ... ON DUPLICATE KEY UPDATE

 

這樣就可以根據剛才的需求修改成以下寫法,將判斷是否已存在的邏輯改成在資料存取層完成

INSERT INTO Player(sn, playerName, height, weight)
VALUES('12', 'Kevin', 177, 72)
ON DUPLICATE KEY UPDATE playerName = 'Kevin', height = 177, weight = 72