INSERT INTO ... ON DUPLICATE KEY错误

时间:2011-11-10 14:50:17

标签: mysql

我有这个查询

INSERT INTO outlet_inventory (outletid, itemid, itemqty)
VALUES('$outletid', '$itemid', '$qty') 
WHERE outletid = '$outletid'
ON DUPLICATE KEY 
UPDATE outlet_inventory.itemqty = outlet_inventory.itemqty + $qty

据我所知,它没有错误,但我收到此错误

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE outletid = 5' at line 5

任何想法都错了吗?


更新

更新了我的查询...仍然收到相同的错误。

INSERT INTO outlet_inventory (outletid, itemid, itemqty)
VALUES('$outletid', '$itemid', '$qty') 
ON DUPLICATE KEY 
UPDATE outlet_inventory.itemqty = outlet_inventory.itemqty + $qty
WHERE outletid = '$outletid'

3 个答案:

答案 0 :(得分:3)

您的WHERE上有INSERT条款。这应该在UPDATE上。

INSERT INTO outlet_inventory (outletid, itemid, itemqty)
VALUES('$outletid', '$itemid', '$qty') 
ON DUPLICATE KEY 
UPDATE outlet_inventory.itemqty = outlet_inventory.itemqty + $qty     
WHERE outletid = '$outletid'

答案 1 :(得分:3)

WHEREnot valid in an INSERT statement,也没有任何意义。

我认为你的意思是它成为你UPDATE条款的一部分。

答案 2 :(得分:0)

试试这个

INSERT INTO outlet_inventory (outletid, itemid, itemqty)
VALUES('$outletid', '$itemid', $qty) 
ON DUPLICATE KEY 
UPDATE itemqty = itemqty + $qty

修改

您不需要也不能将WHERE子句放入INSERT ... ON DUPLICATE KEY UPDATE语句中。请参阅此处的文档:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

您只能将WHERE放入正常的UPDATE语句中。