@@ -47,6 +47,7 @@ public class AlterExpression {
4747 private String ukName ;
4848 private Index index = null ;
4949 private String constraintName ;
50+ private boolean constraintIfExists ;
5051 private boolean onDeleteRestrict ;
5152 private boolean onDeleteSetNull ;
5253 private boolean onDeleteCascade ;
@@ -143,6 +144,14 @@ public String getConstraintName() {
143144 public void setConstraintName (final String constraintName ) {
144145 this .constraintName = constraintName ;
145146 }
147+
148+ public boolean isConstraintIfExists () {
149+ return constraintIfExists ;
150+ }
151+
152+ public void setConstraintIfExists ( boolean constraintIfExists ) {
153+ this .constraintIfExists = constraintIfExists ;
154+ }
146155
147156 public List <String > getPkColumns () {
148157 return pkColumns ;
@@ -215,7 +224,11 @@ public String toString() {
215224 b .append (")" );
216225 }
217226 } else if (constraintName != null ) {
218- b .append ("CONSTRAINT " ).append (constraintName );
227+ b .append ("CONSTRAINT " );
228+ if (constraintIfExists ) {
229+ b .append ("IF EXISTS " );
230+ }
231+ b .append (constraintName );
219232 } else if (pkColumns != null ) {
220233 b .append ("PRIMARY KEY (" ).append (PlainSelect .getStringList (pkColumns )).append (')' );
221234 } else if (ukColumns != null ) {
0 commit comments