当前位置: 首页>>代码示例>>Java>>正文


Java AddColumnStatement.isPrimaryKey方法代码示例

本文整理汇总了Java中liquibase.statement.core.AddColumnStatement.isPrimaryKey方法的典型用法代码示例。如果您正苦于以下问题:Java AddColumnStatement.isPrimaryKey方法的具体用法?Java AddColumnStatement.isPrimaryKey怎么用?Java AddColumnStatement.isPrimaryKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在liquibase.statement.core.AddColumnStatement的用法示例。


在下文中一共展示了AddColumnStatement.isPrimaryKey方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: validate

import liquibase.statement.core.AddColumnStatement; //导入方法依赖的package包/类
public ValidationErrors validate(AddColumnStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
    ValidationErrors validationErrors = new ValidationErrors();

    validationErrors.checkRequiredField("columnName", statement.getColumnName());
    validationErrors.checkRequiredField("columnType", statement.getColumnType());
    validationErrors.checkRequiredField("tableName", statement.getTableName());

    if (statement.isPrimaryKey() && (database instanceof CacheDatabase
            || database instanceof H2Database
            || database instanceof DB2Database
            || database instanceof DerbyDatabase
            || database instanceof SQLiteDatabase)) {
        validationErrors.addError("Cannot add a primary key column");
    }

    // TODO HsqlDatabase autoincrement on non primary key? other databases?
    if (database instanceof MySQLDatabase && statement.isAutoIncrement() && !statement.isPrimaryKey()) {
        validationErrors.addError("Cannot add a non-primary key identity column");
    }
    return validationErrors;
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:22,代码来源:AddColumnGenerator.java

示例2: generateSql

import liquibase.statement.core.AddColumnStatement; //导入方法依赖的package包/类
public Sql[] generateSql(AddColumnStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {

        String alterTable = "ALTER TABLE " + database.escapeTableName(statement.getSchemaName(), statement.getTableName()) + " ADD " + database.escapeColumnName(statement.getSchemaName(), statement.getTableName(), statement.getColumnName()) + " " + TypeConverterFactory.getInstance().findTypeConverter(database).getDataType(statement.getColumnType(), statement.isAutoIncrement());

        if (statement.isAutoIncrement() && database.supportsAutoIncrement()) {
            AutoIncrementConstraint autoIncrementConstraint = statement.getAutoIncrementConstraint();
        	alterTable += " " + database.getAutoIncrementClause(autoIncrementConstraint.getStartWith(), autoIncrementConstraint.getIncrementBy());
        }

        if (!statement.isNullable()) {
            alterTable += " NOT NULL";
        } else {
            if (database instanceof SybaseDatabase || database instanceof SybaseASADatabase) {
                alterTable += " NULL";
            }
        }

        if (statement.isPrimaryKey()) {
            alterTable += " PRIMARY KEY";
        }

        if (statement.isUnique()) {
            alterTable += " UNIQUE ";
        }

        alterTable += getDefaultClause(statement, database);

        List<Sql> returnSql = new ArrayList<Sql>();
        returnSql.add(new UnparsedSql(alterTable, new Column()
                .setTable(new Table(statement.getTableName()).setSchema(statement.getSchemaName()))
                .setName(statement.getColumnName())));

        addForeignKeyStatements(statement, database, returnSql);

        return returnSql.toArray(new Sql[returnSql.size()]);
    }
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:37,代码来源:AddColumnGenerator.java

示例3: generateSql

import liquibase.statement.core.AddColumnStatement; //导入方法依赖的package包/类
@Override
public Sql[] generateSql(AddColumnStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
    String alterTable = "ALTER TABLE " + database.escapeTableName(statement.getSchemaName(), statement.getTableName()) + " ADD " + database.escapeColumnName(statement.getSchemaName(), statement.getTableName(), statement.getColumnName()) + " " + TypeConverterFactory.getInstance().findTypeConverter(database).getDataType(statement.getColumnType(), statement.isAutoIncrement());

    alterTable += getDefaultClause(statement, database);

    if (primaryKeyBeforeNotNull(database)) {
        if (statement.isPrimaryKey()) {
            alterTable += " PRIMARY KEY";
        }
    }

    if (statement.isAutoIncrement()) {
        AutoIncrementConstraint autoIncrementConstraint = statement.getAutoIncrementConstraint();
        alterTable += " " + database.getAutoIncrementClause(autoIncrementConstraint.getStartWith(), autoIncrementConstraint.getIncrementBy());
    }

    if (!statement.isNullable()) {
        alterTable += " NOT NULL";
    } else if (database instanceof SybaseDatabase || database instanceof SybaseASADatabase) {
        alterTable += " NULL";
    }

    if (!primaryKeyBeforeNotNull(database)) {
        if (statement.isPrimaryKey()) {
            alterTable += " PRIMARY KEY";
        }
    }
    if (statement.isUnique()) {
        alterTable += " UNIQUE ";
    }

    List<Sql> returnSql = new ArrayList<Sql>();
    returnSql.add(new UnparsedSql(alterTable, new Column()
                    .setTable(new Table(statement.getTableName()).setSchema(statement.getSchemaName()))
                    .setName(statement.getColumnName())));

    addForeignKeyStatements(statement, database, returnSql);

    return returnSql.toArray(new Sql[returnSql.size()]);
}
 
开发者ID:hongliangpan,项目名称:manydesigns.cn,代码行数:42,代码来源:AddColumnGeneratorDefaultClauseBeforeNotNull.java

示例4: generateSql

import liquibase.statement.core.AddColumnStatement; //导入方法依赖的package包/类
@Override
public Sql[] generateSql(AddColumnStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
	String alterTable = "ALTER TABLE " + database.escapeTableName(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName()) +
               " ADD " +
               database.escapeColumnName(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName(), statement.getColumnName())
               + " " + DataTypeFactory.getInstance().fromDescription(statement.getColumnType() + (statement.isAutoIncrement() ? "{autoIncrement:true}" : ""), database).toDatabaseDataType(database);

	if (statement.isAutoIncrement() && database.supportsAutoIncrement()) {
		alterTable += " " + database.getAutoIncrementClause(null, null);
	}

	if (!statement.isNullable()) {
		alterTable += " NOT NULL";
	} else {
		if (database instanceof SybaseDatabase || database instanceof SybaseASADatabase) {
			alterTable += " NULL";
		}
	}

	if (statement.getDefaultValue()!=null){
		alterTable += " DEFAULT ";
		LiquibaseDataType defaultValueType = DataTypeFactory.getInstance().fromDescription(statement.getColumnType() + (statement.isAutoIncrement() ? "{autoIncrement:true}" : ""), database);
		alterTable +=(defaultValueType instanceof DateTimeType ?" TIMESTAMP ":(defaultValueType instanceof DateType ?" DATE ":(defaultValueType instanceof TimeType ?" TIME ":"")));
		alterTable += DataTypeFactory.getInstance().fromObject(statement.getDefaultValue(), database).objectToSql(statement.getDefaultValue(), database);
	}

	List<Sql> returnSql = new ArrayList<Sql>();
	returnSql.add(new UnparsedSql(alterTable, new Column().setRelation(new Table().setName(statement.getTableName()).setSchema(new Schema(statement.getCatalogName(), statement.getSchemaName())).setName(statement.getColumnName()))));

	if (statement.isPrimaryKey()) {
		returnSql.addAll(Arrays.asList(SqlGeneratorFactory.getInstance().generateSql(new AddPrimaryKeyStatement(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName(), statement.getColumnName(), null) , database)));
	}

	if (statement.isUnique()) {
		returnSql.addAll(Arrays.asList(SqlGeneratorFactory.getInstance().generateSql(new AddUniqueConstraintStatement(statement.getCatalogName(), statement.getSchemaName(), statement.getTableName(), new ColumnConfig[] { new ColumnConfig().setName(statement.getColumnName())}, null) , database)));
	}
	//	if (statement.getDefaultValue()!=null)
	//		returnSql.addAll(Arrays.asList(SqlGeneratorFactory.getInstance().generateSql(new AddDefaultValueStatement(statement.getSchemaName(), statement.getTableName(), statement.getColumnName(), statement.getColumnType(), statement.getDefaultValue()) , database)));

	addForeignKeyStatements(statement, database, returnSql);

	return returnSql.toArray(new Sql[returnSql.size()]);
}
 
开发者ID:liquibase,项目名称:liquibase-teradata,代码行数:44,代码来源:AddColumnGeneratorTeradata.java

示例5: generateSql

import liquibase.statement.core.AddColumnStatement; //导入方法依赖的package包/类
@Override
    public Sql[] generateSql(AddColumnStatement statement, Database database, SqlGeneratorChain sqlGeneratorChain) {
        if (!supports(statement, database)) {
            return sqlGeneratorChain.generateSql(statement, database);
        }

        String catalogName = statement.getCatalogName();
        String schemaName = statement.getSchemaName();
        if (schemaName == null) {
            schemaName = database.getDefaultSchemaName();
        }
        String tableName = statement.getTableName();
        String columnName = statement.getColumnName();
        String columnType = statement.getColumnType();

        String alterTable = "ALTER TABLE " + database.escapeTableName(catalogName, schemaName, tableName) +
                " ADD (" + database.escapeColumnName(catalogName, schemaName, tableName, columnName) +
                " " + DataTypeFactory.getInstance().fromDescription(columnType + 
                (statement.isAutoIncrement() ? "{autoIncrement:true}" : ""), database).toDatabaseDataType(database);

        if (statement.isAutoIncrement() && database.supportsAutoIncrement()) {
            AutoIncrementConstraint autoIncrementConstraint = statement.getAutoIncrementConstraint();
            alterTable += " " + database.getAutoIncrementClause(autoIncrementConstraint.getStartWith(), autoIncrementConstraint.getIncrementBy());
        }

        if (!statement.isNullable()) {
            alterTable += " NOT NULL";
        }

        if (statement.isPrimaryKey()) {
            alterTable += " PRIMARY KEY";
        }

        // "ALTER TABLE ADD COLUMN ..." does not support unique constraints in Hana
//        if (statement.isUnique()) {
//            alterTable += " UNIQUE ";
//        }

        alterTable += getDefaultClause(statement, database);

        if ( database instanceof HanaDBDatabase ) {
            alterTable += ")";
        }

        List<Sql> returnSql = new ArrayList<Sql>();
        
        // drop both incoming and outgoing foreign key constraints before adding column
        Set<ForeignKeyConstraintMetaData> constraints = SqlGeneratorHelperHanaDB.getAllForeignKeyConstraints(database, schemaName, tableName);
        SqlGeneratorHelperHanaDB.addDropForeignKeyConstraintsStatements(returnSql, database, constraints);
        
        returnSql.add(new UnparsedSql(alterTable, getAffectedColumn(statement)));
        
        // recreate foreign key constraints
        SqlGeneratorHelperHanaDB.addCreateForeignKeyConstraintsStatements(returnSql, database, constraints);

        addForeignKeyStatements(statement, database, returnSql);

        return returnSql.toArray(new Sql[returnSql.size()]);
    }
 
开发者ID:lbitonti,项目名称:liquibase-hana,代码行数:60,代码来源:AddColumnGeneratorHanaDB.java


注:本文中的liquibase.statement.core.AddColumnStatement.isPrimaryKey方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。