gpt4 book ai didi

java - 字典数据插入或选择(oracle、java)

转载 作者:行者123 更新时间:2023-12-02 08:35:44 24 4
gpt4 key购买 nike

我有一个表(在 ORADB 中),包含两列:VARCHAR 唯一键和从序列生成的 NUMBER 唯一键。

每当获得新的 VARCHAR 键时,我需要我的 Java 代码不断(并行)向该列添加记录,并返回新生成的 NUMBER 键。或者当它获取现有的 VARCHAR 时返回现有的 NUMBER 键(然后它不会插入它,这当然会由于 uniq 键违规而引发异常)。

这样的过程将从许多并行工作的(Java)客户端执行。

希望我的英语是可以理解的:)

最好的方法是什么(也许使用 PL/SQL block 而不是 Java 代码......)?

最佳答案

我认为你不能做得更好

  1. 从 the_table 中选择 the_number,其中 the_key = :key

  2. 如果找到,请将其归还

  3. 如果未找到,INSERT INTO the_table SELECT :key, the_seq.NEXT_VAL RETURNING the_number INTO :numberCOMMIT

  4. 这可能会引发 ORA-00001(重复主键插入)如果时机不巧的话。在这种情况下,请再次SELECT

不确定 JDBC 是否支持 RETURNING,因此您可能需要将其包装到存储过程中(还可以节省数据库往返次数)。

您可以使用索引组织表(以 the_key 作为主键),使查找速度更快。

关于java - 字典数据插入或选择(oracle、java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1872471/

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