1
我有一個INSERT INTO ... ON DUPLICATE KEY UPDATE查詢,由於某種原因被mysql服務器忽略,至少據我所知。什麼會導致upsert失敗(不插入任何行)?
它捕捉到現有行的更新。
我有一個「id」的主鍵,part_no被列爲Unique。
下面是該查詢:
INSERT INTO parts_prices (cost,
chatsworth,
atlanta,
north_carolina,
new_jersey,
arizona,
colorado,
miami,
indianapolis,
ohio,
oregon,
dallas,
san_antonio,
washington,
memphis,
alt_sup,
part_no)
VALUES (0.00, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '', 'HS3163')
ON DUPLICATE KEY UPDATE
cost=VALUES(cost), chatsworth=VALUES(chatsworth), atlanta=VALUES(atlanta), north_carolina=VALUES(north_carolina), new_jersey=VALUES(new_jersey), arizona=VALUES(arizona), colorado=VALUES(colorado), miami=VALUES(miami),
indianapolis=VALUES(indianapolis), ohio=VALUES(ohio), oregon=VALUES(oregon), dallas=VALUES(dallas), san_antonio=VALUES(san_antonio), washington=VALUES(washington), memphis=VALUES(memphis), alt_sup=VALUES(alt_sup)
第一列是一個小數,然後一堆整數的,最後兩個是VARCHAR處理。這是零件清單數據庫中的條目(我們碰巧列出了零件號碼,但實際上並沒有它)。我遍歷所有零件編號的列表(通過使用last_modified列),並且此特定查詢不更新時間戳。
難道這是因爲該行中的信息實際上並未發生變化(所有指定的值都與初始值相同)?
該查詢適用於(相當多)數據庫中以前的條目。
我在PHP腳本的查詢中檢查了響應錯誤並直接(使用phpmyadmin),它們不返回任何錯誤字符串。 [/編輯]
謝謝!像魅力一樣工作!我會盡快接受你的回答。 – Riet