5

我有一个查询如下...

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

我所取得的成就,

创建连接,语句和执行查询如下

    statement.execute(query);

但是,现在我需要找出代码是否执行了 INSERT 或 UPDATE ?

谁能帮我这个??

提前致谢...

4

2 回答 2

2

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

于 2013-03-18T12:04:51.390 回答
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
}
于 2013-03-18T12:18:27.950 回答