gpt4 book ai didi

java - JDBC 从重复插入中生成 key

转载 作者:可可西里 更新时间:2023-11-01 07:09:47 25 4
gpt4 key购买 nike

如果您有一个带有 ON DUPLICATE KEY 子句的插入,并且存在重复键,是否有任何方法可以取回重复的主键?还是我必须自己手动查询?据我所知,CallableStatement 类中的 getGeneratedKeys() 不会返回,因为新插入实际上并未完成。

编辑抱歉,如果不清楚,但我想取回记录的 PRIMARY KEY。

所以如果我有下表(请原谅语法,只是徒手输入):

CREATE TABLE some_table(
id int(11) unsigned NOT NULL AUTO_INCREMENT,
value varchar(500)NOT NULL,
count int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (id),
UNIQUE KEY (value)
);

INSERT INTO some_table(value) ON DUPLICATE KEY UPDATE count = count + 1;

如果我要添加 'test' 作为值,将添加一条新记录,并且 id 将由 getGeneratedKeys() 返回;

如果我再次尝试添加“测试”, key 已经存在,因此计数将被更新。我想要的是已更新的那一行的主键/ID。我是否必须确保我没有从 getGeneratedKeys() 返回任何结果——因为没有生成任何结果——然后再做一次选择?

最佳答案

ON DUPLICATE KEY UPDATE count = count + 1, id = LAST_INSERT_ID(id)

注意:从 MySQL 5.5 开始,这应该不是必需的。

关于java - JDBC 从重复插入中生成 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18107789/

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