我正在尝试实现一个幂等插入,这个查询看起来很适合这个任务
insert into test_table
select *
from (
values (1, 2, 3, 4),
(3, 4, 5, 6),
(1, 2, 3, 4),
(3, 4, 5, 6)
) as data(a, b, c, d)
where not exists(select 1
from test_table
where test_table.a = data.a
and test_table.b = data.b
and test_table.c = data.c);
请帮助将此查询翻译成jooqdsl
我使用了greenplum数据库,但不受支持 ON CONFLICT
语法
1条答案
按热度按时间rjjhvcjd1#
这个答案是假设您正在使用
TEST_DATA
(否则,手动构造标识符,如上所示name("data", "a")
,或如图所示)。此外,它还假设:正式支持greenplum时,请参见#4700,然后
ON CONFLICT
或者ON DUPLICATE KEY IGNORE
可以为你效法。