如果存在数据则更新数据库否则只需一步即可在MySQL中插入

时间:2017-09-04 12:40:22

标签: mysql

对于我的应用程序,我需要检查某些列是否存在数据。如果存在,则将值10添加到现有值,否则插入新条目

我正在尝试这样的事情

UPDATE reporting set column_name1 = column_name1 + 10 WHERE column_name2 = "201";
IF ROW_COUNT()=0 THEN
    INSERT INTO reporting (column_name1,column_name2) VALUES (15,201);
END IF

在我的表中,column_name2不是主键,我已禁用安全检查。由于这个原因,我无法使用DUPLICATE KEY约束。对于此查询,我收到语法错误:

Error Code: 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 'IF @@ROWCOUNT=0 THEN INSERT INTO reporting (identifier,_9_2017) ' at line 1

If语句的语法类似于MySQL文档https://dev.mysql.com/doc/refman/5.7/en/if.html中的语法。此门户网站中有很少与此相关的问题,但我找不到正确的答案(UPDATE if exists else INSERT in SQL)。我在哪里错了?

1 个答案:

答案 0 :(得分:0)

你应该像这样使用ROW_COUNT()

SELECT ROW_COUNT();