2
我試圖使用jooq dsl進行插入/更新查詢。 我們在表中有一個唯一的(MemberId,GroupId)組合和一個組成員資格Enum。 使用(MemberId,GroupId,RoleEnum)發送訂閱請求 查詢應向數據庫插入新條目,但如果MemberId,GroupId組合已存在 - 則只有在新RoleEnum大於現有值時更新條目一。Jooq中的條件onDuplicateKeyUpdate
我沒能做到這一點使用一個與jooq的Dsl查詢,所以不是我只好用兩個查詢(GET,然後插入或相應更新),但後來我失去了操作的原子性...
有沒有辦法做到這一點與jooqDsl一個查詢?
模擬是什麼意思?它是否會生成正確的代碼,但是jOOQ DSL看起來不同,還是會生成不同的SQL,但它的行爲映射到http://www.postgresql.org/docs/中定義的「ON CONFLICT」定義的行爲上9.5/static/sql-insert.html? – Yaneeve
@Yaneeve:'ON DUPLICATE KEY UPDATE'子句是MySQL特有的。但是它的語義可以在PostgreSQL上通過生成等價的'ON CONFLICT'子句來模擬。即jOOQ DSL中的'onDuplicateKeyUpdate()'子句適用於兩個數據庫。本地在MySQL上,並在PostgreSQL上「模擬」。 –