gpt4 book ai didi

java - Statement.RETURN_GENERATED_KEYS 使用 ON DUPLICATE KEY UPDATE 返回 null

转载 作者:行者123 更新时间:2023-11-29 01:30:19 31 4
gpt4 key购买 nike

这是我的示例代码行

String query = "INSERT INTO tb_product_group values(?,?,?,?,?) ON DUPLICATE KEY UPDATE prg_name = values(prg_name)";
stmtGroups = con.prepareStatement(query,Statement.RETURN_GENERATED_KEYS);
stmtGroups.setInt(index++, java.sql.Types.NULL);
stmtGroups.setString(index++, "");
stmtGroups.setString(index++, str[1]);
stmtGroups.setString(index++, str[2]);
stmtGroups.setInt(index++, oprDto.getId());
System.out.println(stmtGroups);
ResultSet rs = stmtGroups.getGeneratedKeys();
if (rs.next()){
groupID = rs.getLong(1);
}

第一次当我插入数据时 (null,"1","1","1",1);我得到一个带有新生成的 ID 的 groupID。但是第二次我尝试添加相同的数据,由于唯一键约束而触发 UPDATE 语句。那时我得到的 groupID 为 null。

我尝试 REPLACE INTO tb_product_group values(?,?,?,?,?) 但也得到 null 作为 generatedKeys。

最佳答案

尝试

INSERT INTO tb_product_group values(?,?,?,?,?) ON DUPLICATE KEY UPDATE
prg_name = values(prg_name), id = last_insert_id(id)

id 替换为您的 auto_increment 列的名称。

编辑:我还没有用 java api 尝试过,所以可能还有另一个问题。

关于java - Statement.RETURN_GENERATED_KEYS 使用 ON DUPLICATE KEY UPDATE 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15636773/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com