/** * Add a constraint statement to this statement. The primary key definition * is one possible constraint statement. * * @param command the statement to add */ public void addConstraintCommand(DefineCommand command) { if (command instanceof CreateIndex) { constraintCommands.add(command); } else { AlterTableAddConstraint con = (AlterTableAddConstraint) command; boolean alreadySet; if (con.getType() == CommandInterface.ALTER_TABLE_ADD_CONSTRAINT_PRIMARY_KEY) { alreadySet = setPrimaryKeyColumns(con.getIndexColumns()); } else { alreadySet = false; } if (!alreadySet) { constraintCommands.add(command); } } }
buff.append(constraintName); IndexColumn[] cols = prepared.getIndexColumns(); IndexColumn[] refCols = prepared.getRefIndexColumns(); buff.append(" FOREIGN KEY(");
private StatementBuilder uniqueConstraint(AlterTableAddConstraint prepared, ObjectNode node, String keyType) { StatementBuilder buff = new StatementBuilder("ALTER TABLE "); buff.append(identifier(node.getCompositeObjectName())).append(" ADD CONSTRAINT "); String constraintName = prepared.getConstraintName(); // MySQL constraintName is optional if (!StringUtils.isNullOrEmpty(constraintName)) { buff.append(constraintName); } buff.append(' ').append(keyType); if (prepared.isPrimaryKeyHash()) { buff.append(" USING ").append("HASH"); } buff.append('('); for (IndexColumn c : prepared.getIndexColumns()) { buff.appendExceptFirst(", "); buff.append(identifier(c.column.getName())); } buff.append(')'); return buff; }
for (IndexColumn c : stmt.getIndexColumns()) { buff.appendExceptFirst(", "); buff.append(identifier(c.columnName)); buff.resetCount(); buff.append("("); for (IndexColumn c : stmt.getIndexColumns()) { buff.appendExceptFirst(", "); buff.append(identifier(c.columnName)); AlterTableAddConstraint stmt = (AlterTableAddConstraint) command; String refTableName = refNode.getCompositeObjectName(); IndexColumn[] cols = stmt.getIndexColumns(); IndexColumn[] refCols = stmt.getRefIndexColumns(); buff.resetCount();