diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java index 7a0b6c3560..2d2ba894ee 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertQueryImpl.java @@ -495,12 +495,12 @@ final class InsertQueryImpl extends AbstractStoreQuery impl toSQLInsert(ctx); ctx.formatSeparator() .start(INSERT_ON_DUPLICATE_KEY_UPDATE) - .visit(K_ON_CONFLICT) - .sql(' '); + .visit(K_ON_CONFLICT); if (onConstraint != null ) { ctx.data(DATA_CONSTRAINT_REFERENCE, true); - ctx.visit(K_ON_CONSTRAINT) + ctx.sql(' ') + .visit(K_ON_CONSTRAINT) .sql(' ') .visit(onConstraint); @@ -509,13 +509,21 @@ final class InsertQueryImpl extends AbstractStoreQuery impl else { boolean qualify = ctx.qualify(); - if (onConflict != null && onConflict.size() > 0) - ctx.sql('(') + if (onConflict != null && onConflict.size() > 0) { + ctx.sql(" (") .qualify(false) .visit(onConflict) .qualify(qualify) .sql(')'); + if (onConflictWhere.hasWhere()) + ctx.formatSeparator() + .visit(K_WHERE) + .sql(' ') + .visit(onConflictWhere.getWhere()); + } + + @@ -531,7 +539,7 @@ final class InsertQueryImpl extends AbstractStoreQuery impl } - ctx.sql(' ') + ctx.formatSeparator() .visit(K_DO_NOTHING) .end(INSERT_ON_DUPLICATE_KEY_UPDATE); break;