摘要:[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