diff --git a/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java b/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java index 07378d2a37..d9c9a3615f 100644 --- a/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java +++ b/jOOQ/src/main/java/org/jooq/InsertOnDuplicateSetStep.java @@ -63,6 +63,8 @@ import static org.jooq.SQLDialect.YUGABYTEDB; import java.util.Map; +import org.jooq.impl.DSL; + import org.jetbrains.annotations.NotNull; /** @@ -172,4 +174,12 @@ public interface InsertOnDuplicateSetStep { @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) InsertOnDuplicateSetMoreStep set(Record record); + /** + * Sets all columns from the insert column list to + * {@link DSL#excluded(Field)}. + */ + @NotNull @CheckReturnValue + @Support({ CUBRID, DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE, YUGABYTEDB }) + InsertOnDuplicateSetMoreStep setAllToExcluded(); + } diff --git a/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java b/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java index c114a1cfa4..85749710c3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/InsertImpl.java @@ -38,6 +38,7 @@ package org.jooq.impl; import static org.jooq.impl.DSL.condition; +import static org.jooq.impl.DSL.excluded; import static org.jooq.impl.DSL.exists; import static org.jooq.impl.DSL.not; import static org.jooq.impl.DSL.notExists; @@ -139,6 +140,8 @@ import org.jooq.SelectFieldOrAsterisk; import org.jooq.Table; import org.jooq.UniqueKey; +import org.jetbrains.annotations.NotNull; + /** * @author Lukas Eder */ @@ -1232,6 +1235,14 @@ final class InsertImpl field : fields) + set(field, (Field) excluded(field)); + + return this; + } + @Override public final InsertImpl and(Condition condition) { getDelegate().addConditions(condition);