2014-07-17 33 views
1

如果它不存在,我需要在BD上插入一条新记录,如果它存在,则更新。为此,我使用2个查询:插入一个新的如果它不存在,并且如果它存在则更新

INSERT INTO tbl_ponto (`rodada`, `ponto`, `patrimonio`, `FK_loginID`) VALUES ('10', 100.00, 100.00, 3); 
UPDATE tbl_ponto SET ponto=150.00, patrimonio=150.00 WHERE rodada=10 AND FK_loginID=3; 

我只用1个查询就可以做到这一点。我阅读了REPLACE,但无法使其适用于我的情况。 你能帮我吗?

回答

2
INSERT INTO tbl_ponto (`rodada`, `ponto`, `patrimonio`, `FK_loginID`) 
    VALUES ('10', 100.00, 100.00, 3) 
ON DUPLICATE KEY UPDATE ponto=150.00, patrimonio=150.00; 

触发ON DUPLICATE KEYINSERT失败叫,因为一些与已经存在的PRIVATE/UNIQUE KEY价值观冲突。

在这种情况下,rodada, FK_loginID必须是PRIVATE KEYUNIQUE KEY,否则您将不得不更新其中一个值。

+0

谢谢你,我不知道该怎么做...:/ –

相关问题