mysql错误更新或插入失败

时间:2012-11-29 20:33:00

标签: mysql insert unique

我在这里失明......似乎无法在这个SQL中找到错误:

INSERT INTO sankt_groups_order (
    parent_group_id, 
    child_group_id, 
    order
) VALUES (?,?,?)
ON DUPLICATE KEY UPDATE 
    order = ?
;

我收到此错误:

SQLSTATE[42000]: Syntax error or access violation: 
    1064 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 'order ) VALUES ('65',NULL,'3') ON DUPLICATE KEY UPDATE order = '3'' 

接下来这个SQL会做我想的吗?我需要它来插入整行如果丢失并更新顺序如果它存在...我有一个索引使parent_group_idchild_group_id唯一。

1 个答案:

答案 0 :(得分:3)

order是mysql中的reserved word,你必须逃脱它:

    child_group_id, 
    `order`
    ^--   ^--- backticks to escape
) VALUES (?,?,?)

是的,它应该按照你的想法去做。如果存在唯一/主要密钥违规,您只需更改order字段。