gpt4 book ai didi

java - Apache Derby : how can I do "insert if not exists"?

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:53 26 4
gpt4 key购买 nike

我给 Apache Derby , 又名 JavaDB旋转。插入可能已经存在的记录时,我似乎无法解决重复键问题。是否有等同于“insert if not exists”或“merge”的 Derby?

同样,有没有办法做类似“drop table foo if exists”这样的事情?

最佳答案

我从未使用过 apache derby,但是一个完全独立于数据库的通用解决方案如下:

要将值 'a' 和 'b' 插入表 foo(列名为 A、B),但仅在值不存在的地方,尝试类似的方法

INSERT INTO foo (  
SELECT 'a' as A, 'b' as B
FROM foo
WHERE
A = 'a' AND B = 'b'
HAVING count(*)=0
)

这可能需要针对特定​​的 dbms 进行调整,但我们的想法是插入一个只在没有值时才返回值的选择结果。

这是创建幂等 sql 脚本(第二次运行时什么都不做)的有用技巧。但是,在生产代码中使用它时要小心,因为 HAVING count(*)=0 在大型表上可能会非常慢。

关于java - Apache Derby : how can I do "insert if not exists"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/407688/

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