gpt4 book ai didi

java - 在准备好的语句中批量运行多个查询

转载 作者:太空宇宙 更新时间:2023-11-04 09:48:52 25 4
gpt4 key购买 nike

我有一个场景,如果 DB2 中不存在记录,我想插入该记录。如果已经存在,则将现有行的 is_active 列更新为 0,并插入 is_active 为 1 的新行。

我无法使用合并,因为我无法在匹配部分运行 2 个查询。

如何批量实现这一目标。

如果我要一一运行查询,我就可以运行它们。但由于有流媒体并且每秒大约有 500 条消息,我想批量执行此操作

如果我们使用声明我们本来可以做到

语句.addBatch(sql1)语句.addBatch(sql2)

完成上述操作后,假设我们执行批处理 500 次语句.excuteBatch()

但是我们正在准备好的声明中寻找类似的东西。当我们尝试以与声明相同的方式执行此操作时,它失败了

最佳答案

您可以将 2 个或多个数据更改语句合并为一个语句,但它是一个 SELECT 语句,不能在 addBatch 方法中使用。
Retrieval of result sets from an SQL data change statement
但您只能在 addBatch 方法中使用 after update 触发器和 insert 语句。

CREATE TABLE TEST
(
ID INT NOT NULL GENERATED ALWAYS AS IDENTITY
, KEY INT NOT NULL
, IS_ACTIVE INT NOT NULL
) IN USERSPACE1;

CREATE TRIGGER TEST_AIR
AFTER INSERT ON TEST
REFERENCING NEW AS N
FOR EACH ROW
UPDATE TEST T SET IS_ACTIVE=0 WHERE T.KEY=N.KEY AND T.ID<>N.ID AND T.IS_ACTIVE<>0;

INSERT INTO TEST (KEY, IS_ACTIVE) VALUES (1, 1);
INSERT INTO TEST (KEY, IS_ACTIVE) VALUES (1, 1);
SELECT * FROM TEST;

|ID |KEY |IS_ACTIVE |
|-----------|-----------|-----------|
|1 |1 |0 |
|2 |1 |1 |

关于java - 在准备好的语句中批量运行多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55056953/

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