2015-10-19 27 views
2

我想實施INSERT ... ON DUPLICATE KEY UPDATE解決方案,如SQL文檔here中所述。重複密鑰更新 - 找到保留字

這裏是我的表

|Table| 
|Name (unique)|Description| 
|Entry1|{empty}| 

我想創建一個新的條目,命名條目1,以說明「測試」,或者,如果存在的話,更新條目1

的描述

這裏我的查詢

INSERT INTO Table (NAME, DESCRIPTION) VALUES ('Entry1', 'test') 
ON DUPLICATE KEY UPDATE DESCRIPTION = 'test'; 

我已經閱讀了很多文檔和其他主題,但我找不到我做錯了什麼。

的錯誤信息是:

期待 「;」,發現保留字 「ON」 位於第1行

+2

您是否善良地發佈您收到的錯誤消息?你無能爲力? –

+0

的確,我忘了錯誤信息。由於這個錯誤,我無法執行查詢。 謝謝你的幫助 – Maxime

回答

2

NAME是保留的MySQL關鍵字。將其放在反引號:

INSERT INTO Table (`NAME`, DESCRIPTION) 
VALUES ('Entry1', 'test') 
ON DUPLICATE KEY 
UPDATE DESCRIPTION = 'test'; 

你可以通過的keywords here的完整列表。

+0

我的不好,我忘了把錯誤信息。它似乎更多地在「開」部分。 – Maxime

+0

@MaximeVisconte你能提供一個sqlfiddle的例子嗎? – hjpotter92