具有唯一键的 onDuplicateKey 的 Jooq 代码

Jooq code for onDuplicateKey with unique keys

我正在使用 Postgres,我有一个 table 和一个唯一的键(memberId,propertyName)。我正在使用 onDuplicateKey 并且生成的代码显示它正在使用冲突但它使用了 id。是否可以指定您自己的密钥来检查,或者 Jooq 是否尝试读取 table 并检查是否存在唯一约束?我当前的解决方法是执行 select 然后执行更新或插入。

ON DUPLICATE KEY语法源自MySQL,其中子句的语义是考虑所有上的唯一约束(包括主键) table,而不仅仅是您关心的人。

但是,当您以 PostgreSQL 为目标时,为什么一开始就使用这种语法呢? jOOQ 支持 PostgreSQL 的 ON CONFLICT,它允许指定用于子句的唯一键。