Skip to content

Instantly share code, notes, and snippets.

@RicherMans
Created June 19, 2013 13:46
Show Gist options
  • Select an option

  • Save RicherMans/5814454 to your computer and use it in GitHub Desktop.

Select an option

Save RicherMans/5814454 to your computer and use it in GitHub Desktop.
SybaseDatabaseAdministrator.java
/*************************************************************************
* createCheckConstraint
*
* @see amos.share.dbmsSpecific.AbstractDatabaseAdministrator#createCheckConstraint(java.util.List, java.lang.String)
************************************************************************/
@Override
public void createCheckConstraint(List<IColumn> pkCols, String pkName) {
String tableName = pkCols.get(0).getTable().getName();
if (checkListValues.contains(tableName)) {
return;
}
StringBuilder sqlBuilder = new StringBuilder("ALTER TABLE ");
sqlBuilder.append(tableName);
sqlBuilder.append(" ADD CONSTRAINT ");
sqlBuilder.append("check_");
sqlBuilder.append(pkName);
sqlBuilder.append(" check(");
for (int i = 0; i < pkCols.size(); i++) {
String limiter[] = getCheckValueForType(pkCols.get(i).getDataType());
for (int k = 0; k < limiter.length; k++) {
sqlBuilder.append(pkCols.get(i).getName());
sqlBuilder.append(" <> ");
sqlBuilder.append(limiter[k]);
sqlBuilder.append(" AND ");
sqlBuilder.append(pkCols.get(i).getName());
sqlBuilder.append(" <> null");
if (i + 1 < pkCols.size())
sqlBuilder.append(" AND ");
}
}
sqlBuilder.append(")");
try {
UserContext.getInstance().getConnection().executeAdminUpdate(sqlBuilder.toString());
} catch (Exception e) {
throw new AmosDBException("Error while creating Check Constraint : " + e.getMessage());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment