JDBC ON DUPLICATE KEY UPDATE不返回0

时间:2019-02-27 10:37:47

标签: java sql jdbc mariadb on-duplicate-key

我有一些Java代码,可使用SQL查询来插入或更新(如果已存在)。

SQL语句:

PreparedStatement cl = c.prepareStatement("INSERT INTO client VALUES (?, ?, ?, ?, ?, ?) " +
"ON DUPLICATE KEY UPDATE sex = VALUES(sex), zip = " +
"VALUES(zip), gem = VALUES(gem), agb = VALUES(agb), dob = VALUES(dob)");

Java代码:

private void clientInsert(PreparedStatement cl, String bsn, String sex, String zip, String dob, String gem, String agb) throws SQLException {
    cl.setString(1, bsn);
    cl.setString(2, sex);
    cl.setString(3, zip);
    cl.setString(4, dob);
    cl.setString(5, gem);
    cl.setString(6, agb);

    int result = cl.executeUpdate();
    System.out.println("return: " + result);

    if (result == 1) System.out.println("New client inserted: " + bsn);
    else if (result == 2) System.out.println("Existing client updated: " + bsn);
    else if (result == 0) System.out.println("Existing client, not updated (duplicate values)");
    else System.out.println("query failed");
}

它会插入优良(返回1),并且当使用相同的“ bsn”(id)但以不同的zip再次运行时,它将更新优良(返回2)。但是,当我使用完全相同的数据再次运行它而没有更改时,它再次返回1,因此我无法在控制台中知道客户端是否已经存在而没有更改。

如何检查?

0 个答案:

没有答案