2016-05-09 75 views
0

該語句隨機停止工作。我相信這是因爲我使用4.5.2的新版WAMP。mysql在DUPLICATE KEY不識別

INSERT INTO at_user_listing_settings (userID, rfID, userID_rfID, Watching) VALUES(177, 35888, '177_35888', '1') ON DUPLICATE KEY UPDATE Watching='1' 

我得到這個錯誤:

Unrecognized keyword. (near "ON" at position 138) 
Unrecognized keyword. (near "DUPLICATE" at position 141) 
Unrecognized keyword. (near "KEY" at position 151) 

我不能似乎發現了什麼不對的語法,爲ON DUPLICATE KEY更改或棄用?

+0

你正在使用'4.5.2' **什麼**? – RiggsFolly

+0

你在這個確切的查詢**上得到這個錯誤**? – RiggsFolly

+0

顯示爲以下輸出:SELECT version(); –

回答

0

查詢簡單地重寫本:

INSERT INTO at_user_listing_settings 
SET 
    userID = 177, 
    rfID = 35888, 
    userID_rfID = '177_35888', 
    Watching = '1' 
ON DUPLICATE KEY UPDATE 
    Watching = '1' 
+0

只是出於興趣....這是怎麼回事 – RiggsFolly

+0

不客氣。 – Legionar

+0

我嘗試了上面的說法,但仍然得到類似的錯誤,它也在說另一列的內容。 '注意'也許是造成這個問題的原因? 錯誤:無法識別的關鍵字。(位置151附近「開」) 無法識別的關鍵字。 (在位置154的「重複」附近) 無法識別的關鍵字。 (在位置164的「KEY」附近) 以前發現別名。 (在位置189的「1」附近) #1364 - 字段'註釋'沒有默認值 我想知道如果最後的錯誤部分可能與它有關... –

1

這似乎是一個phpMyAdmin問題!

github errors that have been reported

它看起來相當老了,但我看不出有任何引用到一個解決方法,它仍然是開放的

我們爲所謂Adminer, SourceForge download link here人們一個類似的工具提供了一個插件是具有幾奇與phpMyAdmin

問題是下載,它會在「您的別名」菜單

+0

我給你+1至少知道這是一個phpmyadmin問題,而不是代碼問題。雖然技術上它是一個MySQL設置。 –

2

終於想通這件事了安裝直入WAMPServer並顯示在WAMPServer主頁。

當您下載WAMP的新版本時,它默認將mysql設置爲「Strict」模式。由hostgator託管的真正的服務器必須有更寬鬆的限制。當試圖在本地運行代碼時,代碼是正確的,但是在嘗試更新或插入數據庫(也是本地)時,sql語句遇到了問題。

例如,嚴格模式要求具有布爾值的列具有默認值。如果任何列沒有默認值,則嘗試插入時會失敗。最糟糕的部分是它不會返回apache或php錯誤,所以它使調試非常困難。它也不喜歡「ON DUPLICATE KEY」。

爲了解決這個問題,我進入了WAMP> MySQL> my.ini>並尋找sql-mode="STRICT_ALL_TABLES"

然後我刪除了STRICT_ALL_TABLES,並且一切都開始按照它應該的方式工作。

相關問題