查找mysql查询是执行更新还是插入

时间:2013-03-18 11:58:21

标签: java mysql

我的查询如下......

    INSERT INTO MYTABLE (f1,f2,f3,f4) VALUES (1,2,3,4) ON DUPLICATE KEY UPDATE f4=5;

我已经实现了目标,

创建连接,声明和&执行查询如下

    statement.execute(query);

但是,现在我需要查找代码是执行了INSERT还是UPDATE?

任何人都可以帮我解决这个问题吗?

提前致谢...

2 个答案:

答案 0 :(得分:2)

您可以使用两个语句:executeUpdate返回受影响的行数。如果该数字为0,则必须执行插入。

答案 1 :(得分:1)

我不知道任何特定的内置功能或解决方法。

但在我的情况下,我会以一种简单的方式使这成为可能

select count(*) as oldcount from MYTABLE;

在此级别执行您的查询

INSERT INTO MYTABLE (f1,f2,f3,f4) VALUES (1,2,3,4) ON DUPLICATE KEY UPDATE f4=5;

select count(*) as newCount from MYTABLE;

retrive OLDCOUNT and NEW COUNT

if(oldcount != new count)
{
  //InsertPerformed
}

else
{
  //updateperformed
}