Package liquibase.change.core
Class AddUniqueConstraintChange
- java.lang.Object
-
- liquibase.AbstractExtensibleObject
-
- liquibase.plugin.AbstractPlugin
-
- liquibase.change.AbstractChange
-
- liquibase.change.core.AddUniqueConstraintChange
-
- All Implemented Interfaces:
Cloneable,Change,ExtensibleObject,Plugin,LiquibaseSerializable
public class AddUniqueConstraintChange extends AbstractChange
Adds a unique constraint to an existing column.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface liquibase.serializer.LiquibaseSerializable
LiquibaseSerializable.SerializationType
-
-
Field Summary
-
Fields inherited from class liquibase.change.AbstractChange
NODENAME_COLUMN
-
Fields inherited from interface liquibase.change.Change
EMPTY_CHANGE, SHOULD_EXECUTE
-
Fields inherited from interface liquibase.serializer.LiquibaseSerializable
GENERIC_CHANGELOG_EXTENSION_NAMESPACE, GENERIC_SNAPSHOT_EXTENSION_NAMESPACE, STANDARD_CHANGELOG_NAMESPACE, STANDARD_SNAPSHOT_NAMESPACE
-
Fields inherited from interface liquibase.plugin.Plugin
PRIORITY_DATABASE, PRIORITY_DEFAULT, PRIORITY_NOT_APPLICABLE, PRIORITY_SPECIALIZED
-
-
Constructor Summary
Constructors Constructor Description AddUniqueConstraintChange()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ChangeStatuscheckStatus(Database database)Validate that this change executed successfully against the given database.protected AddUniqueConstraintStatementcreateAddUniqueConstraintStatement()protected Change[]createInverses()Create inverse changes that can roll back this change.SqlStatement[]generateStatements(Database database)Generates theSqlStatementobjects required to run the change for the given database.StringgetCatalogName()BooleangetClustered()StringgetColumnNames()StringgetConfirmationMessage()Confirmation message to be displayed after the change is executed.StringgetConstraintName()BooleangetDeferrable()BooleangetDisabled()StringgetForIndexCatalogName()StringgetForIndexName()StringgetForIndexSchemaName()BooleangetInitiallyDeferred()StringgetSchemaName()StringgetSerializedObjectNamespace()StringgetTableName()StringgetTablespace()BooleangetValidate()In Oracle PL/SQL, the VALIDATE keyword defines whether a newly added unique constraint on a column in a table should cause existing rows to be checked to see if they satisfy the uniqueness constraint or not.voidsetCatalogName(String catalogName)voidsetClustered(Boolean clustered)voidsetColumnNames(String columnNames)voidsetConstraintName(String constraintName)voidsetDeferrable(Boolean deferrable)voidsetDisabled(Boolean disabled)voidsetForIndexCatalogName(String forIndexCatalogName)voidsetForIndexName(String forIndexName)voidsetForIndexSchemaName(String forIndexSchemaName)voidsetInitiallyDeferred(Boolean initiallyDeferred)voidsetSchemaName(String schemaName)voidsetTableName(String tableName)voidsetTablespace(String tablespace)voidsetValidate(Boolean validate)-
Methods inherited from class liquibase.change.AbstractChange
createChangeMetaData, createChangeParameterMetadata, createDescriptionMetaData, createEmptyColumnConfig, createExampleValueMetaData, createMustEqualExistingMetaData, createRequiredDatabasesMetaData, createSerializationTypeMetaData, createSinceMetaData, createSupportedDatabasesMetaData, customLoadLogic, equals, finishInitialization, generateCheckSum, generateRollbackStatements, generateRollbackStatementsVolatile, generateStatementsVolatile, getAffectedDatabaseObjects, getChangeSet, getDescription, getExcludedFieldFilters, getResourceAccessor, getSerializableFieldNamespace, getSerializableFields, getSerializableFieldType, getSerializableFieldValue, getSerializedObjectName, hashCode, isInvalidProperty, load, modify, serialize, serializeValue, setChangeSet, setResourceAccessor, shouldExecuteChange, supports, supportsRollback, toString, validate, warn
-
Methods inherited from class liquibase.AbstractExtensibleObject
clone, describe, get, get, get, getAttributes, getFieldValue, getObjectMetaData, getValuePath, has, set
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface liquibase.ExtensibleObject
clone, describe, get, get, getAttributes, getObjectMetaData, getValuePath, has, set
-
-
-
-
Method Detail
-
getCatalogName
public String getCatalogName()
-
setCatalogName
public void setCatalogName(String catalogName)
-
getSchemaName
public String getSchemaName()
-
setSchemaName
public void setSchemaName(String schemaName)
-
getTableName
public String getTableName()
-
setTableName
public void setTableName(String tableName)
-
getColumnNames
public String getColumnNames()
-
setColumnNames
public void setColumnNames(String columnNames)
-
getConstraintName
public String getConstraintName()
-
setConstraintName
public void setConstraintName(String constraintName)
-
getTablespace
public String getTablespace()
-
setTablespace
public void setTablespace(String tablespace)
-
getDeferrable
public Boolean getDeferrable()
-
setDeferrable
public void setDeferrable(Boolean deferrable)
-
getInitiallyDeferred
public Boolean getInitiallyDeferred()
-
setInitiallyDeferred
public void setInitiallyDeferred(Boolean initiallyDeferred)
-
getDisabled
public Boolean getDisabled()
-
setDisabled
public void setDisabled(Boolean disabled)
-
getValidate
public Boolean getValidate()
In Oracle PL/SQL, the VALIDATE keyword defines whether a newly added unique constraint on a column in a table should cause existing rows to be checked to see if they satisfy the uniqueness constraint or not.- Returns:
- true if ENABLE VALIDATE (this is the default), or false if ENABLE NOVALIDATE.
-
setValidate
public void setValidate(Boolean validate)
- Parameters:
validate- - if shouldValidate is set to FALSE then the constraint will be created with the 'ENABLE NOVALIDATE' mode. This means the constraint would be created, but that no check will be done to ensure old data has valid constraints - only new data would be checked to see if it complies with the constraint logic. The default state for unique constraints is to have 'ENABLE VALIDATE' set.
-
getClustered
public Boolean getClustered()
-
setClustered
public void setClustered(Boolean clustered)
-
getForIndexName
public String getForIndexName()
-
setForIndexName
public void setForIndexName(String forIndexName)
-
getForIndexSchemaName
public String getForIndexSchemaName()
-
setForIndexSchemaName
public void setForIndexSchemaName(String forIndexSchemaName)
-
getForIndexCatalogName
public String getForIndexCatalogName()
-
setForIndexCatalogName
public void setForIndexCatalogName(String forIndexCatalogName)
-
generateStatements
public SqlStatement[] generateStatements(Database database)
Description copied from interface:ChangeGenerates theSqlStatementobjects required to run the change for the given database. NOTE: This method may be called multiple times throughout the changelog execution process and may be called in documentation generation and other integration points as well. If this method reads from the current database state or uses any other logic that will be affected by whether previous changeSets have ran or not, you must return true fromChange.generateStatementsVolatile(liquibase.database.Database).
-
createAddUniqueConstraintStatement
protected AddUniqueConstraintStatement createAddUniqueConstraintStatement()
-
checkStatus
public ChangeStatus checkStatus(Database database)
Description copied from interface:ChangeValidate that this change executed successfully against the given database. This will check that the update completed at a high level plus check details of the change. For example, a change to add a column will check that the column exists plus data type, default values, etc.- Specified by:
checkStatusin interfaceChange- Overrides:
checkStatusin classAbstractChange
-
getConfirmationMessage
public String getConfirmationMessage()
Description copied from interface:ChangeConfirmation message to be displayed after the change is executed. Should include relevant configuration settings to make it as helpful as possible. This method may be called outside the changelog execution process, such as in documentation generation.
-
createInverses
protected Change[] createInverses()
Description copied from class:AbstractChangeCreate inverse changes that can roll back this change. This method is intended to be overridden by Change implementations that have a logical inverse operation. Default implementation returns null. IfAbstractChange.generateRollbackStatements(liquibase.database.Database)is overridden, this method may not be called.- Overrides:
createInversesin classAbstractChange- Returns:
- Return null if there is no corresponding inverse and therefore automatic rollback is not possible. Return an empty array to have a no-op rollback.
- See Also:
#supportsRollback
-
getSerializedObjectNamespace
public String getSerializedObjectNamespace()
- Specified by:
getSerializedObjectNamespacein interfaceLiquibaseSerializable- Overrides:
getSerializedObjectNamespacein classAbstractChange
-
-