0

私はこのSQLクエリを持っています:

INSERT INTO `Items` 
(`id`,`parent_id`,`name`) 
VALUES (123,321,null) 
ON DUPLICATE KEY UPDATE 
`id` = `id`, `parent_id` = VALUES(`parent_id`), `name` = VALUES(`name`);

phpmyadmin でクエリを実行すると、正しい結果が返されます。

0 - No update
1 - Line inserted
2 - Line updated

しかし、java/jdbc 経由でクエリを実行すると、クエリは 1-1-2 を返します。つまり、挿入/更新がまったくない場合は 1 が返されます。何か案が?それはバグですか、それとも何かが足りないのですか?

更新: 最新のコネクタ/j - v5.1.26

UPDATE2: Java コード

    int ans1 = 0;
    int ans2 = 0;
    try {
        java.sql.Connection c = DbConnector.getConn();

        Statement s = c.createStatement();
        ans1 = DbConnector.execute("INSERT INTO `Items` (`id`,`parent_id`,`name`) VALUES (123,9990635,null) ON DUPLICATE KEY UPDATE `id` = `id`, `parent_id` = VALUES(`parent_id`), `name` = VALUES(`name`);");
        ans2 = DbConnector.execute("INSERT INTO `Items` (`id`,`parent_id`,`name`) VALUES (123,9990635,null) ON DUPLICATE KEY UPDATE `id` = `id`, `parent_id` = VALUES(`parent_id`), `name` = VALUES(`name`);");
        s.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println(ans1);
    System.out.println(ans2);
4

1 に答える 1