diff --git a/clause/on_conflict.go b/clause/on_conflict.go index 127d9bc1..64ee7f53 100644 --- a/clause/on_conflict.go +++ b/clause/on_conflict.go @@ -3,6 +3,7 @@ package clause type OnConflict struct { Columns []Column Where Where + TargetWhere Where OnConstraint string DoNothing bool DoUpdates Set @@ -25,6 +26,12 @@ func (onConflict OnConflict) Build(builder Builder) { } builder.WriteString(`) `) } + + if len(onConflict.TargetWhere.Exprs) > 0 { + builder.WriteString(" WHERE ") + onConflict.TargetWhere.Build(builder) + builder.WriteByte(' ') + } if onConflict.OnConstraint != "" { builder.WriteString("ON CONSTRAINT ")